我刚刚通过遵循senddex教程开始学习Django。在课程中,我们向数据库中添加了一个User模型,并在views.py文件中创建了一个函数:
def register(request):
if request.method == "POST":
form = UserCreationForm(request.POST)
if form.is_valid():#si les champs sont OK :
user = form.save()
login(request, user)
return redirect("main:homepage")
else:
for msg in form.error_messages:
print(form.error_messages[msg])
但是在这段代码中,我不理解Django如何知道request.method是True还是False。是因为我在模板中创建了带有“提交”按钮的表单吗?
答案 0 :(得分:0)
由于我们没有您的HTML,但总的来说,无法确切说明您的情况
<form method="POST"></form>
或<form method="GET"></form>
指定一种方法。如果未指定,则默认为GET。答案 1 :(得分:0)
在这种情况下,request.method
仅表示用于访问视图的HTTP方法。例如,您的register
函数可能被分配了url
配置,例如:url(r'^register/', views.register)
,该配置将传入的HTTP请求映射到您的视图。如果您的Web表单带有“提交”按钮,则可能是Web应用程序代码正在向您的Web服务器提交HTTP POST
请求。
Django会自动为您构造request
对象,因此您可以在视图中检查如何针对Web服务器发出请求。有关请求中还包含其他内容的更多信息,请检查Django docs。