【发布时间】:2017-01-25 08:34:15
【问题描述】:
所以我刚刚创建了一个表单并不断收到此错误,为什么?检查表单是否有效后,我正确使用了 Cleaned_data,对吗?
这是我的forms.py:
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
username = forms.CharField(max_length=10)
email = forms.EmailField()
class Meta:
model = User
fields = ['username', 'email', 'password']
这是我的views.py:
class UserFormView(View):
form_class = UserForm
template_name = 'Home/index.html'
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=False)
username = form.Cleaned_data['username']
password = form.Cleaned_data['password']
user.set_password(password)
user.save()
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('Home:Dashboard')
return render(request, self.template_name, {'form': form})
我的 urls.py:
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^register$', views.UserFormView.as_view(), name='register'),]
和表格位置:
<form action="/register" method="post">
{% csrf_token %}
<ul class="contactList">
<li id="username1" class="contact">{{ form.username }}</li>
<li id="email1" class="contact">{{ form.email }}</li>
<li id="password1" class="contact">{{ form.password }}</li>
</ul>
<input type="submit" value="Submit">
</form>
关于这个问题还有其他主题,但我无法从中获得任何帮助,因为大多数人没有包含 if form.is_valid(),但在我的情况下我包含。
【问题讨论】:
-
cleaned_data应为小写 -
@Sayse 感谢您的回复。将它们都更改为小写,仍然得到相同的错误..
-
请包含完整的堆栈跟踪
-
请包含错误信息。最好用 4 个空格正确对齐。尝试使用 pdb 或 ipdb 进行调试,让我们知道您在那里看到了什么。
标签: django django-models django-forms django-templates django-views