Django的:form.as_p没有出现在渲染模板了

问题描述 投票:0回答:1

Django的: 我通过form.as_p到我的HTML模板但它不会在浏览器中显示。我究竟做错了什么??

models.朋友:

class Student(models.Model):
    student_name = models.CharField(max_length=200)

URLs.朋友:

urlpatterns = [
    path("studentform/", views.CreateStudentForm, name="CreateStudentForm"),
]

forms.朋友:

class StudentForm(forms.Form):
    class Meta:
        model = Student
        fields = [
            'student_name',
        ]

views.朋友:

def CreateStudentForm(request):
    form = StudentForm(request.POST or None)
    if form.is_valid():
        form.save()

    context = {
        'form' : form
    }

    return render(request, 'main/studentform.html', context)

studentform.html:

<form>

{{ form.as_p }}
<input type='submit' value='Save' />

</form>

我不明白,为什么{{form.as_p}}不起作用。请帮忙。

python django
1个回答
2
投票

您需要使用ModelForm产生从在Django模型的形式。所以,你的StudentForm将成为

class StudentForm(forms.ModelForm):
   class Meta:
       model = Student
       fields = [
           'student_name',
       ]

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.