Django-Taggitのリストと詳細ビューを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/8314979

質問

Django Taggitをタグ付けに使用するかなりシンプルなモデルがあります。

すべてがうまく機能しますが、今では機能を拡大したいと思っています。少し混乱しています。

私が欲しいのは2つのビューです。

システム内のすべてのタグを表示するもの。特定のタグでアプリのすべてのコンテンツを表示するもの。

私にとって理にかなっているのは、ビューごとに次のことをすることです。

views.py for myapp

  1. すべてのタグ

    myapp.modelsインポートアプリから

    taggit.modelsからインポートタグから

    クラスタグリスト(ListView):

    "" "DBのすべてのタグを取得" "

    queryset = Tag.objects.all()
    template_name = "myapp/TagList.html"
    paginate_by = 10
    
  2. タグのすべてのコンテンツ

    myapp.modelsインポートアプリから

    taggit.modelsからインポートタグから

    class taggedList(listView): "" "タグのすべてのコンテットを取得" ""

    template_name = "myapp/TaggedList.html"
    
    def get_object(self):
        return get_list_or_404(App, tag__iexact=self.kwargs['tag'])
    

私は心を失ったことがありますか、それとも本当に簡単ですか?ところで、私は一般的なクラスビューを使用しています。

助けてくれてありがとう。デイブ

役に立ちましたか?

解決

2.これは、複数のオブジェクトではなく、単一のオブジェクトを返すためのものだと思います。

def get_object(self):  

代わりに、おそらく次のようなものを試す必要があります。

def get_queryset(self):
    return TaggedItem.objects.filter(tag__iexact=self.kwargs['tag'])

これにより、genericforeignkeysのアイテムのリストが返されます

アプリと呼ばれる特定のモデルのみに興味がある場合は、

    return App.objects.filter(tags__name__in=[self.kwargs['tag']])

テンプレートのデフォルト変数名はタグGedItem_listです

{% for item in TaggedItem_list %}
   {{item.content_object}} {# generic foreign key here #}
{% endfor %}

urls.pyはに似ている必要があります

url(r'someapp/(?P<tag>\w+)/$', TaggedList.as_view())
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top