0

django-tagging でオブジェクトをフィルタリングする方法を知りたいと思っていました。

たとえば、記事を書いたのにステータスが変わらdraftない場合、記事がライブ ステータスにプッシュされる前にこれらを表示したくないことは明らかです。

で行いますか、{% tags_for_model products.Widget as widget_tags %}それとも別の方法がありますか?

4

2 に答える 2

1

templatetags でタグを取得するオブジェクトをフィルタリングしません。タグを付ける簡単な方法が見つかりませんでした

Product.objects.filter(draft= False)

私がすることは、PublishedProduct のような 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)
于 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 に答える