注册表格未提交



在尝试了其他堆栈溢出的多种解决方案后,我似乎无法让我的注册表单在Django中工作。

这是登记表

<h1>Register</h1>
<div>
<form method="POST" action="{% url 'register' %}"></form>
{% csrf_token %}
{{ form.as_p}}
<input type="submit" value="register" />
</div>

下面是views.py'

def register_page(request):
form = CustomUserCreateForm()

if request.method == 'POST':
form = CustomUserCreateForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.save()
login(request, user)
return redirect('login')

page = 'register'
context={'page':page, 'form':form}
return render(request, 'login_register.html', context)

forms.py'

class CustomUserCreateForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'email', 'name', 'password1', 'password2']

没有抛出任何错误,只是没有提交。我试着改变输入按钮功能,但它仍然不起作用。什么好主意吗?

我认为保存表单实例实际上并没有使user成为可认证的用户对象

试试这个

if form.is_valid():
#You are not doing anything to user, so no need to commit=False
#user = form.save(commit=False)
form.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
#Make sure user is an authenticated user object
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
#Handle no user as appropriate eg,
#else:
#    messages.error(request,'Well that didn't work')