我按照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)