Python Django-对表单有点迷茫

Python Django-对表单有点迷茫,python,django,django-forms,Python,Django,Django Forms,我在Django工作。我对表单(forms.py或models.py?)的代码放在何处以及模板中放的代码有点不知所措。我搜索了一些文档,但没有找到,我对Django有点陌生,谢谢 如果有人能给我一个完整的例子,一个简单的形式来理解这些东西,我将不胜感激 谢谢。来自 您应该在forms.py中创建表单类 范例 from django import forms class ContactForm(forms.Form): subject = forms.CharField(max_leng

我在Django工作。我对表单(forms.py或models.py?)的代码放在何处以及模板中放的代码有点不知所措。我搜索了一些文档,但没有找到,我对Django有点陌生,谢谢

如果有人能给我一个完整的例子,一个简单的形式来理解这些东西,我将不胜感激

谢谢。

来自

您应该在forms.py中创建表单类

范例

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    message = forms.CharField()
    sender = forms.EmailField()
    cc_myself = forms.BooleanField(required=False)
要在模板中呈现表单,需要将其添加到上下文中。因此,您的视图.py应该如下所示

from django.shortcuts import render
from django.http import HttpResponseRedirect

def contact(request):
    if request.method == 'POST': # If the form has been submitted...
        # ContactForm was defined in the the previous section
        form = ContactForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...
            return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = ContactForm() # An unbound form

    return render(request, 'contact.html', {
        'form': form,
    })
注意这一部分。字典{'form':form}是您的请求上下文,这意味着键将被添加到模板变量中

return render(request, 'contact.html', {
    'form': form,
})
现在,您可以在模板中使用它

<form action="/contact/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
{%csrf\u令牌%}
{{form.as_p}}

您可以查看这个基本示例,该示例在以下链接中提供,用于在django中处理POST表单


您的确切问题是什么?你不明白什么?我的问题中提到了,表单的代码应该放在哪里,还有一个基本的例子来看看它是如何工作的。对此很抱歉。更新了答案。正是我想要的,谢谢!我试过了,但有一个小问题,当我想访问表单时,它会自动将我重定向到contact.html,并且我已经设置了正确的验证:if form.is_valid():#所有验证规则都通过subject=form.cleaned_data['subject']message=form.cleaned_data['message']sender=form.cleaned_data['sender']cc_-imf=form.cleaned_-data['cc_-imf']您可能应该删除模板中的action=“/contact/”部分。