关于Django-comments包的CommentForm设计问题

CommentForm design question about Django-comments package

在Django自带的注释框架django-contrib-comments中,class定义如下:

  1. models.py中定义了class Comment (CommentAbstractModel):

  2. forms.py中定义了class CommentForm (CommentDetailsForm):

问:既然评论框架是comment-db-table驱动的包,为什么我们不使用ModelForm从模型创建表单,而不是冗余地创建另一个CommentForm class ?

classCommentDetailsForm继承自CommentSecurityForm,它定义了各种util方法并执行自定义验证。这些表单还声明了 Comment 模型中未包含的字段。是的,可以使用 ModelForm 而不是 Form,但我认为这个决定并没有错,因为这些表单需要特定的行为,ModelForm 会节省一些代码行(不是很多),但实际实现更为明确。对模型使用 ModelForm 不是必须的。