我按照https://docs.djangoproject.com/en/dev/ref/contrib/comments/custom/上的指南为我当前的django应用设置了新闻条目的评论表单。现在,我需要在站点的另一部分中为另一种类型的Object提供具有不同字段的注释表单。
考虑到我已经覆盖了联系表格,应如何实现?
答案 0 :(得分: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)