Python Django-对表单有点迷茫
我在Django工作。我对表单(forms.py或models.py?)的代码放在何处以及模板中放的代码有点不知所措。我搜索了一些文档,但没有找到,我对Django有点陌生,谢谢 如果有人能给我一个完整的例子,一个简单的形式来理解这些东西,我将不胜感激 谢谢。来自 您应该在forms.py中创建表单类 范例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
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/”部分。