【问题标题】:Django commentsDjango 评论
【发布时间】:2011-10-06 12:55:57
【问题描述】:

我有一个 Django 应用程序,它有两个模型:第一个是 django.contrib.auth.User,第二个是 Product,由我创建。

对于每个产品,我都会添加 cmets,因此每个注册的用户都可以为每个产品插入评论。

我看到有django.contrib.comments,但可能是用于类似博客的网站,如果他们没有注册,每个用户也可以在哪里发表评论。我会用一个只有 textarea 的评论表单来写评论,并且用户会自动设置为request.user

我应该从头开始编写 cmets 系统吗?

【问题讨论】:

    标签: python django django-apps django-comments


    【解决方案1】:

    您所描述的内容听起来非常简单,非常适合 Django 的内置评论应用程序。仅仅因为它允许匿名用户发表评论并不意味着这是一项要求,您可以通过简单地不为未经身份验证的用户显示评论表单来轻松阻止匿名用户发表评论。

    您应该运行这个使用内置评论应用程序的示例: https://docs.djangoproject.com/en/dev/ref/contrib/comments/example/

    我认为您会发现它可以满足您的所有需求,并具有您可能没有想到的其他功能(垃圾邮件防护),并且可以节省您大量从头开始构建东西的时间。

    【讨论】:

    • 如何删除 URL/名字/姓氏等字段?
    • 我相信您指的是评论表单中的字段(如果我弄错了请告诉我)。您可以将自己的评论表单 (form.html) 添加到 templates/comments/ 目录中,其中包含您想要使用的字段。您实际上可以在显示表单之前检查用户是否在此处登录,否则向他们显示登录或注册的链接。
    • 查看“相关”;)stackoverflow.com/questions/2393237/…
    • 不呈现表单并不会阻止它在 POST 请求中被处理。您必须在您的视图中检查:if method == "post" and user.is_authenticated(): foo()。 (如果您的 Django 安装使用 CSRF 令牌,则可以缓解这种情况)知道表单结构的已注销用户可以通过手工制作的 POST 请求在您的博客上发布匿名 cmets。此外,如果用户之前已登录但退出后未刷新页面,则提交评论将作为匿名用户发布。
    【解决方案2】:

    内置的 Django cmets 模块适用于您想要启用 cmets 的任何模型。见这里:https://docs.djangoproject.com/en/1.3/ref/contrib/comments/

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 2013-07-23
      • 2012-03-05
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多