0


1

プレフィックスを追加するDjangoコメントフォーム

各djangoコメントフォームにプレフィックスを追加したいと思います。 私は同じページで複数のコメントフォームを使用していますが、うまく機能しています。「

だから、djangoに各フォームインスタンスにプレフィックスを追加するように指示する方法はありますか? この方法でフォームインスタンスを作成すると、他のフォームでもできることを知っています[オブジェクト] [varname]%} `。

テンプレートタグにプレフィックスを追加するように指示できますか?

1 Answer


2


さて、私はアイデアを持っています。 http://docs.djangoproject.com/en/1.1/ref/contrib/comments/custom/ [カスタムコメントフォーム]を追加し、 `init`をオーバーライドします。 target_objectからプレフィックスを生成し、 `self.prefix`に設定できます:

def __init__(self, target_object, data=None, initial=None):
    ...

あるいは、BaseForm.add_prefixをオーバーライドします。

def add_prefix(self, field_name):
    """
    Returns the field name with a prefix appended, if this Form has a
    prefix set.

    Subclasses may wish to override.
    """
    return self.prefix and ('%s-%s' % (self.prefix, field_name)) or field_name

*更新:*はい、そのとおりです。 プレフィックスは機能しません。主な理由はcontrib.comments.views.comments.post_commentのコードです。 したがって、私はあなたの質問を読み直しました。「id」属性を変更する必要がある場合は、BaseForm.auto_idを使用します。

class CustomCommentForm(CommentForm):
    def __init__(self, target_object, data=None, initial=None):
        super(CustomCommentForm, self).__init__(target_object, data, initial)
        idprefix = target_object.__class__.__name__.lower()
        self.auto_id = idprefix + "_%s"