djangoフォームを表示しています。 がレンダリングされる前にいくつかのフィールドデータを準備します。 djangoのドキュメントでは、フォームデータにアクセスする場所はたくさんありますが、表示前にフォームデータが設定されている場所はありません。フォームを表示する前にdjangoフォームデータを事前設定する
これを行う方法に関するご意見やご提案はありますか?
ここでは、djangoドキュメントに似た例を示します。
----------- forms.py --------------
class BookForm(ModelForm):
author = forms.CharField(max_length=100)
title = forms.CharField(max_length=3,
widget=forms.Select(choices=TITLE_CHOICES))
birth_date = forms.DateField(required=False)
----------- views.pyあなたが持っているあなたの意見で--------------
def author_view(request):
if request.method == 'POST':
# DO My processing...
form = BookForm()
# How can I edit, or preset my form fields here?
c = Context({
'form': form,
})
return prepCxt(request, 'book.html', c) # Wrapper for easy display
フォームのインスタンス化を言う-1は、if文の前に置く必要があります。ポストデータの場合はポストデータでインスタンス化し、そうでない場合は空のフォームをインスタンス化します。 –
@DanielRosemanそれはする必要はありません。それは他の人の前に行くことができます。それはほとんど違いがありません。 –