【问题标题】:Extending Django commenting system扩展 Django 评论系统
【发布时间】:2009-07-17 08:08:34
【问题描述】:

这就是我希望在我的网站上发表评论的方式:

  • 如果用户已登录,他们会看到一个“添加 cmets”框,其中包含一个用于评论文本的文本字段,以及一个复选框,如果选中则匿名发布评论
  • 如果用户未登录,它将向用户显示上述所有内容,以及一个额外的文本字段,用户可以在其中输入显示名称。

所以基本上如果用户已登录,他们可以匿名或使用他们的用户名发表评论。如果他们没有登录,他们可以匿名发帖,也可以当场编一个名字,仅作展示之用。

我该怎么做呢?我已经设置了模板,该模板根据用户的登录状态为用户提供适当的文本框和复选框。

我想到了一个围绕django.contrib.comments.views.post_comment 的包装函数,但该视图只接受一个不可变的请求对象。你会怎么做呢?

【问题讨论】:

  • 具体是什么阻止了您直接使用post_comment 视图?
  • @vinay:如果选中了匿名复选框,我需要将用户从与评论一起保存的逻辑中删除。我也需要它,所以不需要电子邮件字段。

标签: django django-comments


【解决方案1】:

听起来您可能需要自定义 cmets 应用程序——请查看the docs。这是another example(这个在标准评论表单中添加了一个验证码)。似乎是一个非常简单的过程:)

【讨论】:

    【解决方案2】:

    只需写下你的观点,你可以从django.contrib.comments.views.post_comment 那里抄袭什么,但更适合你的用例。使用支持您的特定 UI 的表单(在演示和验证方面)。看起来好像电子邮件字段不可为空,所以如果一个虚拟值不可用,您将不得不输入一个虚拟值。

    如果您可以包装现有功能,那就太好了,但我认为这不切实际。要使包装方法起作用,必须在编写现有代码时考虑到可包装性 - 而这并没有发生。

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 1970-01-01
      • 2014-09-11
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 2011-08-16
      相关资源
      最近更新 更多