【发布时间】:2018-06-19 02:45:59
【问题描述】:
使用django-taggit-templatetags2,我可以在模板页面中显示与测试视频日志相关的所有标签。
我在数据库中存储了尚未向公众发布的vlog(仅在特定日期之后显示),因此我可以在数据库中存储大量vlog详细信息,然后在某一天自动发布每个单独的vlog(比如说每周的星期二)。
这意味着django-taggit-templatetags2显示{% for tag in vlog_tags %}的所有代码将包含尚未在vlog中向用户显示但存储在db中的vlog条目的标签。
我怎样才能只显示vlog_date_published不大于now的vlog条目的标签和计数?可能有相同的标签用于发布和不-尚未发布 vlog 条目。所以这应该考虑到标签的显示。
这是我的模型代码:
from taggit.managers import TaggableManager
class VlogDetails(models.Model):
....
vlog_date_published = models.DateField(null=False, blank=False, default=datetime.now, help_text='The date the vlog video will be made public.')
vlog_tags = TaggableManager(blank=True, help_text='To make a new tag, add a comma after the new tag name.')
....
这里是显示所有标签的模板代码:
{% load taggit_templatetags2_tags %}
{% get_taglist as vlog_tags %}
{% for tag in vlog_tags %}
{% if tag.num_times > 0 %}
<a class='u-tags-v1 g-color-grey g-bg-grey-opacity-0_1 g-bg-grey--hover g-color-white--hover g-rounded-50 g-py-4 g-px-15' href="{% url 'vlog_tag' tag %}" hreflang="en" rel="tooltip" title="{% blocktrans %}Display all vlog entries containing this tag.{% endblocktrans %}"><i class="fa fa-tag icon_padding"></i> {{tag}} x {{tag.num_times}}</a>
{% endif %}
{% endfor %}
编辑
这里是来自数据库的屏幕截图,指的是显示给用户的标签,即使 vlog 尚未显示给用户,但存储在数据库中等待基于vlog_date_published 自动发布> now.
在这种情况下,Employment NDA 的标签不应显示给用户,因为使用该标签的 vlog 条目尚未显示给用户,因为 vlog_date_published 大于今天(在这篇文章)。
taggit_taggeditem 表(id=191 - FK 的 24 和 123):
另一个编辑
所以在这种情况下,Employment NDA 的以下标签不应显示,因为它属于尚未发布/显示给公众的 vlog 详细信息,而所有其他标签都应显示(作为 vlog所有其他标签所属的详细信息已发布):
【问题讨论】:
-
我也有同样的问题...你解决了吗? stackoverflow.com/questions/48572184/…
-
@fabio 查看已接受的答案,为您提供解决方案。
标签: python django django-taggit