Python Django表单获取GET请求而不是POST请求
在此之前,此代码正在发送post请求。重新启动服务器后,它突然开始发送get。 若我从互联网上获取一些表格的工作邮政编码,然后继续尝试并删除,那个么我的代码就会开始发送邮政请求。但在我放置原始代码一段时间后,这将开始发送get请求而不是post请求 用户\注册\表单.html views.pyPython Django表单获取GET请求而不是POST请求,python,django,django-forms,visual-web-developer,Python,Django,Django Forms,Visual Web Developer,在此之前,此代码正在发送post请求。重新启动服务器后,它突然开始发送get。 若我从互联网上获取一些表格的工作邮政编码,然后继续尝试并删除,那个么我的代码就会开始发送邮政请求。但在我放置原始代码一段时间后,这将开始发送get请求而不是post请求 用户\注册\表单.html views.py 我不确定这是否是问题所在,但试着把标签放在标签内,这样不行。我想用csrf标记显示表单,正如本文()中所说的,为了对表单进行操作,您应该在表单中包含输入标记,或者编写一些javascript来正确提交表单
我不确定这是否是问题所在,但试着把标签放在标签内,这样不行。我想用csrf标记显示表单,正如本文()中所说的,为了对表单进行操作,您应该在表单中包含输入标记,或者编写一些javascript来正确提交表单
<form method="post">
{% csrf_token %}
{{ form }}
</form>
<input type="submit" value="Register">
from django.forms import ModelForm
from django import forms
from .models import StudentData
class StudentRegister(ModelForm):
class Meta:
model = StudentData
fields = "__all__"
widgets = {'password': forms.PasswordInput(),
'rpassword': forms.PasswordInput()}
def clean(self):
cleaned_data = super().clean()
password, rpassword = cleaned_data.get('password'), cleaned_data.get('rpassword')
if password != rpassword:
error_msg = "Both passwords must match"
self.add_error('rpassword', error_msg)
from django.shortcuts import render
from .forms import StudentRegister
from django.contrib import messages
def login_register(request):
return render(request, 'users/login_register.html')
def guest_register(request):
return render(request, 'users/guest_register.html')
def student_data(request):
if request.method == 'POST':
print('post')
form = StudentRegister(request.POST)
if form.is_valid():
print('valid form')
form.save()
messages.success(request, f"You are registered successfully, {form.cleaned_data.get('name')}")
return render(request, "<h3>Registration done</h3>")
else:
print('get')
form = StudentRegister()
return render(request, 'users/user_registration_form.html', {'form': form})
from django.db import models
from django.core.validators import MaxLengthValidator
class StudentData(models.Model):
name = models.CharField(max_length=100)
room_no = models.CharField(max_length=4)
email = models.EmailField()
mobile = models.CharField(max_length=10)
password = models.CharField(max_length=20)
rpassword = models.CharField(max_length=20)
def __str__(self):
return f'{self.name} data'