データベースモデルなしでforms.Formを拡張してDjangoフォームを作成しました。 CharFieldでblank = Falseを設定すると、Djangoの検証によってフィールドが空であるかどうかがチェックされます。モデルを持たないDjangoフォームで空白をFalseに設定する方法
EDIT:views.pyで はforms.pyで
def login(request):
if request.method=='POST':
#####
#####
else:
form=LoginForm()
buttontext='Login'
return render(request,'index.html',{'buttontext':buttontext,'form':form})
:= Falseを代わりに空白の=真
class LoginForm(forms.Form):
username=forms.CharField(label="Username",max_length=30,blank=False)
password=forms.CharField(label="Password",widget=forms.PasswordInput(),blank=False)
class Meta:
help_texts={'username':None,}
def clean(self):
self.cleaned_data=super(LoginForm,self).clean()
u=self.cleaned_data['username']
try:
us=Account.objects.all().get(username=u)
p=self.cleaned_data['password']
print 'original:', us.password
print 'got:', p
if p!=us.password:
add_error('password','Incorrect password')
except Account.DoesNotExist:
self.add_error('username','Username does not exist!')
return self.cleaned_data
明確にするために、forms.pyとviews.pyコードを共有してください。 –
私は本当に**ここにプレーンテキストでパスワードを保存していないことを願っています。すぐにこのコードをすべて削除し、組み込みのDjango認証システムを使用してください。 –
@DanielRoseman私はパスワードがプレーンテキストで保存されないことを知っている、それはむしろハッシュされています。しかし、これは単なるテストプロジェクトです。私はちょうどdjangoを学んでいます。私はまだプロダクションレベルのプロジェクトに割り当てられていません。私は本当に組み込みの認証ライブラリを使用することを学ぶ必要があります –