我试图在主页上注册,所以我没有单独的网址来处理注册。我试图通过get_context_data发送表单,但是它不起作用。我的代码是:
表单.pyclass UserRegistrationForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = [
'username',
'password',
]
视图.py
^{pr2}$
基本.html
{% csrf_token %}{{ form.username }}
{{ form.password }}
所以当我提交表单时,它会给出以下错误:Method Not Allowed (POST): "POST / HTTP/1.1" 405 0
它并没有创造一个新的用户。知道问题出在哪里吗?在
编辑:尝试了FormMixin,得到以下错误:The view app.views.BoxesView didn't return an HttpResponse object. It returned None instead.class BoxesView(ListView):
template_name = 'polls.html'
form_class = UserRegistrationForm
def post(self, request, *args, **kwargs):
form = self.get_form()
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = User.objects.create_user(username=username, password=password)
user.save()
return redirect('/')
def get_context_data(self):
context = super(BoxesView, self).get_context_data()
context['form'] = self.get_form()
return context
def get_queryset(self):
pass