我想知道如何在django-tagging中过滤对象。
例如,如果您撰写了一篇文章并且状态仍为draft
,那么在文章被推送到实时状态之前,您显然不希望显示这些内容。
您是在{% tags_for_model products.Widget as widget_tags %}
中进行还是以其他方式进行?
答案 0 :(得分:1)
您不会过滤模板标签上检索标记的对象。 我没有找到一个直接的方法来为
添加标签Product.objects.filter(draft= False)
我要做的是创建像ProductsProduct
这样的Product的代理模型class PublishedProduct(Product):
objects = PublishedProductManager()
class Meta:
proxy = True
然后设置其默认管理器以从过滤器返回子集(例如filter(draft = False))
class PublishedProduct(models.Manager):
def get_query_set(self):
return super(PublishedProduct, self).get_query_set().filter(draft= False)
答案 1 :(得分:1)
您可以在视图中使用usage_for_model来添加过滤器,例如
Tag.objects.usage_for_model(ModelClass, filters={"status":1})
或创建一个接受过滤器的tags_for_model版本