如何为Django-Taggit创建列表和详细信息?
-
25-10-2019 - |
题
我有一个相当简单的模型,该模型使用django taggit进行标记。
一切都很好,但是现在我想扩展一些功能,我有些困惑。
我想要的是两个视图。
一个显示我在系统中的所有标签。一个用特定标签显示我应用程序中的所有内容。
对我来说,有意义的是为每种观点做以下操作。
在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):“”“获取标签”“”的所有contet
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'])
这将返回带有通用Foreignkeys的项目列表
如果您仅对称为应用程序的特定模型感兴趣,则
return App.objects.filter(tags__name__in=[self.kwargs['tag']])
模板中的默认变量名称为taggedItem_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