如何仅对查询集中的几个实例进行注释?



所以我有一个Post对象的查询集。 我想注释user_voted特定用户创建的Post对象。 最后,我想将所有Post对象发送到模板,即使是那些没有用user_voted注释的对象。 我该怎么做?

太难了。

为什么不只查询带有注释的所有帖子对象,以及(如有必要(关联的用户(或者可能是另一个注释来控制显示(。在模板中,有条件地显示{{obj.user_voted}}

{% for obj in object_list %}
stuff...
<td> {% if obj.user.name == display_user %} {{obj.user_voted}} {%endif} </td>
{% endfor %}

可能可以通过 Django ORM 构造 SQL 来评估条件,并在用户错误时将注释设置为空字符串。不要问我怎么做。它将涉及诸如F表达和CaseCast之类的内容。这种复杂性有一席之地,但我怀疑这是它。

有时,执行是否在 Python 中将某些内容作为模型的属性方法显示的逻辑比在模板中更容易执行。

@property
def display_user_voted(self)
return ... if ... else ''
{{ obj.display_user_voted }}

最新更新