扩展Django';与Django的评论框架';s用户和自定义用户配置文件

扩展Django';与Django的评论框架';s用户和自定义用户配置文件,django,django-comments,Django,Django Comments,我正在运行Django v1.4 我查看了django.contrib.django.comments的源代码,注意到Comment类有一个可选的user字段,它是django的user的外键。我还使用自己的UserProfile扩展了User,它有一个User\u type字段(使用) 我想对每个工单发表评论,但只允许某些user\u type能够发表评论。因此,现在我正在考虑扩展注释来做两件事: 只有登录的用户才能发表评论。因此,Comment.user必须为必填项 只有特定的用户类型可以发

我正在运行Django v1.4

我查看了
django.contrib.django.comments
的源代码,注意到
Comment
类有一个可选的
user
字段,它是django的
user
的外键。我还使用自己的
UserProfile
扩展了
User
,它有一个
User\u type
字段(使用)

我想对每个工单发表评论,但只允许某些
user\u type
能够发表评论。因此,现在我正在考虑扩展
注释
来做两件事:

  • 只有登录的用户才能发表评论。因此,
    Comment.user
    必须为必填项
  • 只有特定的
    用户类型
    可以发表评论
  • 我知道我可能必须创建自己的类并继承
    Comment
    ,但在设计中我有几个问题:

  • 我是否应该保留
    注释
    用户名
    用户电子邮件
    用户url
    等)的所有可选字段?如果是这样的话,我是否应该用
    User
    中的信息添加它们?我觉得如果我添加它们,那么它违反了数据规范化
  • 如何仅限制某些
    userprofile.user\u类型的注释?我知道注释是加载在模板中的,所以我应该如何控制模板中是否包含
    if
    -
    then
    块?这似乎违反了MVC模型设计(我觉得权限限制应该放在
    views.py
    中)

  • 如果您有任何提示、建议和参考,我们将不胜感激。提前感谢!到目前为止,我一直在使用Django文档作为示例。

    为什么不创建一个自定义模板/包含标记,以检查当前用户是否可以发布评论并有条件地显示评论表单。我对Django非常陌生,所以我还没有看过自定义模板标签。谢谢你的想法。你可能看错了。虽然我没有尝试过,但权限可能是最好的选择。