【问题标题】:Python Django Unable to display two forms in one templatePython Django 无法在一个模板中显示两个表单
【发布时间】:2018-09-24 20:28:59
【问题描述】:

我在一个模板中显示两个表单时遇到问题。如果我从views.py 中删除{'form': form}{'obj': obj} 这些表单之一,则剩余表单将正确显示。这是我第一次需要在一个模板中使用两个表单,所以我不知道我的 views.py 是否正确。

这是我的意见.py

def Form(request):
        form = ResgisterStud(request.POST)
        obj = SomeForm(request.POST)
        if request.recaptcha_is_valid and form.is_valid()and request.method=='POST' and 'student' in request.POST:
                form.save(commit=False)
                form.save()
                messages.success(request, 'Saved student')
                return render(request, 'form.html', {'form': form}, {'obj': obj})
        if request.method == 'POST' and 'disponnibility' in request.POST:
            obj.save(commit=False)
            obj.save()
            messages.success(request, 'Saved Dispo')
            return render(request, 'form.html', {'form': form}, {'obj': obj})
        else:
                return render(request, 'form.html', {'form': form}, {'obj': obj})

我的表单.html

<form method='post'>
    {% csrf_token %}
    {{ obj.as_p }}
    <input name="disponnibility" type='submit' value='submit'>
</form>

 <form action="{% url "form" %}" method="post" enctype="multipart/form-data">
                        {% csrf_token %}
                        <div class="row">
                            <div class="col-md-6 form-group">
                                {{ form.Nom|add_class:"form-control" }}
                            </div>
                            <div class="col-md-6 form-group">
                                {{ form.Prenom|add_class:"form-control" }}
                            </div>

                            <div class="col-md-6 form-group">
                                {{ form.Telephone|add_class:"form-control" }}
                            </div>
                            <div class="col-md-12 text-center">
                                <button name="student" class="btn" type="submit">Submit Now</button>
                            </div>
                        </div>
                    </form>

【问题讨论】:

    标签: python django forms django-templates views


    【解决方案1】:

    这与表单无关,只是render 函数的语法。它需要一个字典作为上下文,而不是两个;您需要将两个对象放在同一个字典中。

    return render(request, 'form.html', {'form': form, 'obj': obj})
    

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 2011-10-11
      • 2021-10-01
      • 2017-12-03
      • 2019-04-05
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      相关资源
      最近更新 更多