0

我想知道如何在 django-tagging 中过滤对象。

例如,如果您写了一篇文章并且状态仍然是draft您显然不想在文章被推送到实时状态之前显示这些。

你是这样做的{% tags_for_model products.Widget as widget_tags %}还是有其他的方法?

4

2 回答 2

1

您不会过滤从中检索模板标签上的标签的对象。我没有找到一种直接的方式来为

Product.objects.filter(draft= False)

我要做的是创建一个像 PublishedProduct 这样的产品代理模型

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)
于 2011-02-28T09:37:16.353 回答
1

您可以在视图中使用 usage_for_model 来添加过滤器,例如

Tag.objects.usage_for_model(ModelClass, filters={"status":1})

或创建一个接受过滤器的 tags_for_model 版本

于 2011-02-28T09:37:34.627 回答