私はdjangoプロジェクトに取り組んでいます。登録時に特別割引を得るためにコードを送信することができます。ディスカウントコードのバリデーションはすでにうまく機能していますが、私は1つの美化面が欠けています。ユーザが無効なコードを送信した後、入力フィールドを空にしたい。つまり、提出後にdjangoでフォームフィールドデータを削除するには
def validate_code(value):
# check code for validity or raise ValidationError
class CodeForm(forms.Form):
code = forms.CharField(validators=[validate_code])
# in my views.py
def code_verification_view(request):
if request.method == 'POST':
form = CodeForm(request.POST)
if form.is_valid():
# proceed with given code
else:
# modify form to return an empty html input for the code field
# this is where I'm stuck
form.fields['code'].value = ''
# ... render the form in a template
最終結果は、入力フィールドが空白のフォームである必要がありますが、検証エラーが表示されます。この動作は、フォームの検証が失敗した場合にパスワード入力フィールドが空になる方法と似ているはずです。
EDIT: はhttps://stackoverflow.com/a/46564834/8572938 は、私は、フォームの保護されたメンバーへのアクセスに依存しない適切な解決策をいただければと思います参照してください。私は非常にハック方法で、問題を解決しました。
ここで問題を解決できた場合は、この投稿への回答を追加する必要があります。たとえば、その投稿にはリンクが付いていますが、嫌いです。 – geisterfurz007