https://docs.djangoproject.com/en/dev/ref/contrib/comments/custom/のガイドに従って、現在の django アプリのニュース エントリにコメント フォームを設定しました。ここで、サイトの別の場所にある別のタイプのオブジェクト用に、さまざまなフィールドを持つコメント フォームが必要です。
連絡先フォームを既にオーバーライドしたことを考えると、これはどのように達成されるべきですか?
https://docs.djangoproject.com/en/dev/ref/contrib/comments/custom/のガイドに従って、現在の django アプリのニュース エントリにコメント フォームを設定しました。ここで、サイトの別の場所にある別のタイプのオブジェクト用に、さまざまなフィールドを持つコメント フォームが必要です。
連絡先フォームを既にオーバーライドしたことを考えると、これはどのように達成されるべきですか?
それは良い質問です; django は、どこでも同じコメント フォームを使用することにかなり固執しているようです。おそらく、インスタンス化されたオブジェクトに基づいて異なるフィールドを表示する単一のフォームを作成できます。次の行に沿ってinitメソッドを書いてみてください。
class CustomCommentForm(CommentForm):
custom_field = forms.CharField(max_length=100)
def __init__(self, *args, **kwargs):
super(CustomCommentForm, self).__init__(*args, **kwargs)
# check what's in kwargs['initial'], and insert fields if needed like this:
if ...:
self.fields['optional_field'] = forms.CharField(max_length=100)