如何通过删除不必要的字段来扩展评论框架(django)?

2023-11-21

我一直在阅读有关评论框架以及如何自定义它的 django 文档(http://docs.djangoproject.com/en/1.1/ref/contrib/comments/custom/) 在该页面中,它显示了如何add表单中的新字段。但我想做的是remove不必要的字段,例如 URL、电子邮件(以及其他次要 mods)。

在同一个文档页面上,它说要扩展我的自定义注释类基本注释抽象模型,但仅此而已,我已经走了这么远,现在却不知所措。我在这个特定方面找不到任何内容。


我最近实现了 Ofri 提到的解决方案,因为我只想接受一个单独的“评论”字段作为评论(就像 SO 所做的那样,没有“名称”,没有“电子邮件”,也没有“url”)。

为了自定义默认的评论表单和列表显示,我在根“templates”目录中创建了一个“comments”目录,并覆盖了两个默认的评论模板。

我的“/templates/comments/form.html”是:

{% load comments i18n %}
{% if user.is_authenticated %}
    <form action="{% comment_form_target %}" method="post">
        {% csrf_token %}
        {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %}
        {% for field in form %}
            {% if field.is_hidden %}
                {{ field }}
            {% else %}
                {% if field.name != "name" and field.name != "email" and field.name != "url" %}
                    {% if field.errors %}{{ field.errors }}{% endif %}
                    <p {% if field.errors %} class="error"{% endif %} {% ifequal field.name "honeypot" %} style="display:none;"{% endifequal %}>
                    {{ field }}
                    </p>
                {% endif %}
            {% endif %}
        {% endfor %}
        <input type="submit" name="post" class="submit-post" value="{% trans "Add Comment" %}" />
    </form>
{% else %}
    I'm sorry, but you must be <a href="javascript:alert('send to login page')">logged in</a> to submit comments.
{% endif %}

这与默认的评论表单略有不同,主要是抑制不需要的“名称”、“电子邮件”和“网址”输入的显示。

我的“/templates/comments/list.html”是:

<div class="comment_start"></div>
{% for comment in comment_list %}
    <div class="comment">
       {{ comment.comment }} 
       (from <a href="javascript:alert('show user profile/stats')">{{ comment.user }}</a> - {{ comment.submit_date|timesince }} ago)
    </div>
{% endfor %}

在我想要表格的页面上,我首先调用{% load comments %}进而{% render_comment_form for [object] %} 显示表格,或者{% render_comment_list for [object] %}生成对象上的注释列表(将 [object] 替换为适当的对象名称)。

这对我来说非常有用,并且仍然为我提供了 django 评论附带的所有其他“免费”内容(审核、标记、提要、多态关联等......)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过删除不必要的字段来扩展评论框架(django)? 的相关文章

随机推荐

  • 为什么Python中的破折号写成'\xe2\x80\x93'?

    具体来说 每个转义是什么 xe2 x80 x93为什么需要 3 次转义 尝试单独解码会导致 数据意外结束 错误 gt gt gt print b xe2 x80 x93 decode utf 8 gt gt gt print b xe2 d
  • 如何实现无锁但阻塞的行为?

    我正在为密集型网络应用程序实现一个无锁的单生产者单消费者队列 我有一堆工作线程在它们自己的单独队列中接收工作 然后它们将其出队并进行处理 去掉这些队列的锁 大大提高了高负载下的性能 但当队列为空时它们不再阻塞 进而导致CPU使用率飙升 如何
  • 如何在Java中创建进程[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想在我的应用程序中创建一个流程 但在查看了 Java 的 API 后 我仍然不太明白 基本上我想创建一个多进程应用程序 但新流程是我的应用程序中的
  • C++:参数传递“通过引用传递”

    我理解与任何其他变量一样 参数的类型决定了参数与其参数之间的交互 我的问题是 为什么您会引用参数 而为什么不引用参数背后的原因是什么 为什么有些函数参数可以引用 有些则不能 无法理解这样做的好处 有人可以解释一下吗 通过引用传递的能力存在有
  • Windows 桌面应用程序的使用情况跟踪[关闭]

    Closed 这个问题是无关 目前不接受答案 我正在寻找一些可用于收集 Windows 桌面应用程序的使用信息并对其进行分析的框架 例如 我希望能够回答以下问题 a 人们一天内使用此应用程序多少次 b 他们最喜欢的菜单项等 我简单地浏览了
  • 如何在终端中更改我的 Git 用户名?

    我在终端中从 git 进行推送和拉取 然后在 github com 上更改了我的用户名 我去推送一些更改 但它无法推送 因为它仍然识别我的旧用户名 如何在终端中的 git 上更改 更新我的用户名 在您的终端中 导航到您想要进行更改的存储库
  • 跟踪 YouTube 观看历史记录

    为了自动跟踪我的时间 我想获取我的观看历史记录 最好的情况 每天一次 最坏的情况是每分钟一次 并将其添加为 Google 日历事件 虽然我成功添加了 Google 日历活动 但无法获取 YouTube 观看历史记录 所以我想知道 v3 AP
  • 捕获动态添加到 Jquery Datatables 表的输入字段上的更改事件

    我有一个 ajax 调用 它使用以下代码为响应中的每条记录添加一些行到数据表中 strAppName data Application Name maintCost
  • Eclipse:这些 JSP 错误是什么?

    我继承了一个 Web 应用程序 当在 Eclipse 中设置它时 它显示特定 JSP 中的错误 这些错误在 Problems 视图中没有与之相关的描述 单击它们会将我带到 JSP 的顶部 其中红色错误下划线出现在字符串的中间 如下所示 想象
  • jQuery动态改变元素高度

    我正在开发一个流体布局项目 我的文档中有一些固定高度的 DIV 并且它们的高度都不同 我需要在浏览器调整大小时按比例更改这些 DIV 高度 这是标记 div class target div div class target div div
  • 两个角度之间的最小差?

    我正在尝试计算两个角度之间的最小差异 这是我当前的代码 与我在网上找到的代码略有不同 float a1 MathHelper ToDegrees Rot float a2 MathHelper ToDegrees m fTargetRot
  • 为什么这里循环优于索引?

    几年前 有人posted on 活跃状态食谱出于比较目的 三个 python NumPy 函数 每个都接受相同的参数并返回相同的结果 a距离矩阵 其中两个摘自公开来源 它们都是 或者在我看来是 惯用的 numpy 代码 创建距离矩阵所需的重
  • 数组赋值的性能

    代码优化在 SO 中提到 分析是优化 javascript 的第一步 建议的引擎是 Chrome 和 Firefox 的分析器 这些的问题在于它们以某种奇怪的方式告诉每个函数执行的时间 但我对它们没有很好的理解 最有用的方法是探查器会告诉您
  • 如何让 fgcolor 属性在最新的 Android 版本上工作?

    我曾经能够做到这一点
  • 用PHP执行mysql“创建函数”语句

    我想运行以下命令mysql从 PHP 创建函数语句 DELIMITER CREATE FUNCTION myFunc instring varchar 4000 RETURNS int 11 NO SQL DETERMINISTIC SQL
  • 这里发生了什么?我将结果分配给 C++ 中的结果[重复]

    这个问题在这里已经有答案了 你能告诉我这是怎么回事吗 为什么这是可能的 std make unique
  • 错误 SIPEPS,版本=5.0.0.0 UCMA 4.0 VS2010/VS2013

    我在 VS 2013 和 VS 2010 上开发了 UCMA 4 0 应用程序 运行项目时 出现以下错误 无法加载文件或程序集 SIPEPS Version 5 0 0 0 Culture neutral PublicKeyToken 31
  • 将小部件放置在 QScrollArea 的中心

    如何将固定大小的自定义小部件放置在 QScrollArea 的中心 我可以使用 myWidget pos x y 手动将小部件放置在 QScrollArea 内 但 QScrollArea 中没有 sizeChanged 信号 因此如果滚动
  • 使用 WebKit.NET 从 JavaScript 调用 C# 函数

    我一直在 c win forms 项目中使用 webkit net 并且喜欢使用以下命令从 C 程序中调用 JavaScript 函数是多么容易 browser Document InvokeScriptMethod functionNam
  • 如何通过删除不必要的字段来扩展评论框架(django)?

    我一直在阅读有关评论框架以及如何自定义它的 django 文档 http docs djangoproject com en 1 1 ref contrib comments custom 在该页面中 它显示了如何add表单中的新字段 但我