【问题标题】:Django Model form does not display when I include it in the Parent template当我将它包含在父模板中时,Django 模型表单不显示
【发布时间】:2021-07-16 03:54:25
【问题描述】:

长话短说,我的form.html只显示提交按钮而不是模型表单的所有字段

  <div class="form">
    <form action="{% url 'name' %}" method="POST">
      {% csrf_token %}
        {{ form }}
      <input type="submit" value="submit">
    <p style="color: red;">Watch it before it gets removed on The Internet</p>
  </div>    

这是forms.py

from django import forms
from django.forms.models import ModelForm 
from .models import Person

class PersonForm(forms.ModelForm):
    class Meta:
        model = Person
        fields = ['name','email'] 

当我尝试在 forms.html 上手动添加 html 输入时,我能够使输入显示在页面上,这样导入模型表单有问题吗??

另外奇怪的是,当我点击那个提交按钮时,因为它是页面上唯一显示的按钮……它把我带到一个带有验证错误的普通 form.html,因为我提交的是空值

这是我如何将它包含在父模板{% include "form.html" %}

【问题讨论】:

  • 添加你的views.py
  • 同时试试这个 {{ form.as_p }}
  • 你好@OmegaJoctan你能提供views.py或者提供负责处理你的表单的函数吗?

标签: django django-models django-views django-forms django-templates


【解决方案1】:

这是我对该表单的看法

def get_name(request):

    if request.method=="POST":
       form = PersonForm(request.POST)
       if form.is_valid(): 
            form.save()           
            return HttpResponseRedirect(reverse('thank-you')) 

    else: 
        form = PersonForm()

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

当我不只是单独包含在其他模板中时效果很好

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2017-12-04
    • 2021-09-06
    • 1970-01-01
    • 2016-01-19
    • 2014-05-13
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多