フォームを作成してこのエラーが発生したのはなぜですか?フォームが有効かどうかを確認した後、私は正しくCleaned_dataを使用しますか?'UserForm'オブジェクトに '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
@Sayseあなたの返事を飾りましょう。両方とも小文字に変更されましたが、同じエラーが発生しました。 – Acework
完全なスタックトレースを含めてください – Sayse