Django-Taggitのリストと詳細ビューを作成するにはどうすればよいですか?
-
25-10-2019 - |
質問
Django Taggitをタグ付けに使用するかなりシンプルなモデルがあります。
すべてがうまく機能しますが、今では機能を拡大したいと思っています。少し混乱しています。
私が欲しいのは2つのビューです。
システム内のすべてのタグを表示するもの。特定のタグでアプリのすべてのコンテンツを表示するもの。
私にとって理にかなっているのは、ビューごとに次のことをすることです。
views.py for myapp
すべてのタグ
myapp.modelsインポートアプリから
taggit.modelsからインポートタグから
クラスタグリスト(ListView):
"" "DBのすべてのタグを取得" "
queryset = Tag.objects.all() template_name = "myapp/TagList.html" paginate_by = 10
タグのすべてのコンテンツ
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())
所属していません StackOverflow