モデルフォームでフロッピーフォームを使用していますが、それらに関する唯一のドキュメントは、クラス Meta を介してウィジェットを指定することです。ただし、テキストエリア ウィジェットのプレースホルダーをフォーム変数に依存させたいのですが、Meta はクラス変数にアクセスできません。フレームワークでこれをそのまま達成するためのヒントはありますか?
今、私はこれをforms.pyに持っています:
class ChapterForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.placeholder = "Chapter " + (kwargs.pop('number'))
super(ChapterForm,self).__init__(*args, **kwargs)
class Meta:
model = Chapter
fields = ("name", "text", ...)
widgets = {
"name": PlaceholderInput(attrs={'placeholder':self.placeholder, 'class':'headline'}),
}
標準 (非モデルフォーム) フォームを使用し、変数を使用してフィールド/ウィジェットを宣言できることはわかっていますが、モデルの検証を犠牲にすることなくそれを行う方法があるかどうか疑問に思っていました。