0

https://docs.djangoproject.com/en/dev/ref/contrib/comments/custom/のガイドに従って、現在の django アプリのニュース エントリにコメント フォームを設定しました。ここで、サイトの別の場所にある別のタイプのオブジェクト用に、さまざまなフィールドを持つコメント フォームが必要です。

連絡先フォームを既にオーバーライドしたことを考えると、これはどのように達成されるべきですか?

4

1 に答える 1

0

それは良い質問です; 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)
于 2012-07-02T07:09:51.520 に答える