Python 未在数据库中保存用户模型表单(Django)
我有一个ModelForm,它创建了一个自定义用户的实例(AbstractUser模型)。每当我尝试提交表单时,除了重新加载页面(由于该操作),什么都不会发生,数据库中也不会保存任何内容。代码如下:Python 未在数据库中保存用户模型表单(Django),python,django,django-forms,django-3.1,Python,Django,Django Forms,Django 3.1,我有一个ModelForm,它创建了一个自定义用户的实例(AbstractUser模型)。每当我尝试提交表单时,除了重新加载页面(由于该操作),什么都不会发生,数据库中也不会保存任何内容。代码如下: def sign_up(request): if request.method == 'POST': print("test") form = UserForm(request.POST) if form.is_valid(
def sign_up(request):
if request.method == 'POST':
print("test")
form = UserForm(request.POST)
if form.is_valid():
form.save()
data = form.cleaned_data
user = authenticate(
username=data['username'],
password=data['password']
)
user_login(request, user)
else:
form = UserForm()
return render(request, 'schedules/signup/signup.html', {'form':form})
{%csrf_令牌%}
{{form}}
出于某种原因,它甚至没有打印我在
注册
func的第3行写的行,即使是在我发布时。有什么我做错了吗?好的,你说你的打印没有显示出来,所以首先让你的表单动作相对于网站,在这里使用django的{%url
模板标签通常是个好主意,或者干脆把它留空以发布到当前的url
<form method="post" action="">
{% csrf_token %}
{{ form }}
<input type="submit">
</form>
class UserForm(forms.ModelForm):
class Meta:
model = ClientUser
fields = ['username', 'password', 'classes', 'schedule']
<form method="post" action="http://127.0.0.1:8000/">
{% csrf_token %}
{{ form }}
<input type="submit">
</form>
<form method="post" action="">
{% csrf_token %}
{{ form }}
<input type="submit">
</form>
def sign_up(request):
# Create the form for a GET request
form = UserForm()
if request.method == 'POST':
# Recreate the form instance with the POST data
form = UserForm(request.POST)
# Run form validation
if form.is_valid():
form.save()
data = form.cleaned_data
user = authenticate(
username=data['username'],
password=data['password']
)
user_login(request, user)
# if you end up here on a POST request, the form isn't valid but still contains the errors
return render(request, 'schedules/signup/signup.html', {'form':form})