gpt4 book ai didi

django - 如何为 django-taggit 创建列表和详细 View ?

转载 作者:行者123 更新时间:2023-12-04 15:36:23 24 4
gpt4 key购买 nike

我有一个相当简单的模型,它使用 Django Taggit 进行标记。

一切都很好,但现在我想扩展一些功能,我有点困惑。

我想要的是两种观点。

一个显示系统中我的所有标签。
一个使用特定标签显示我的应用程序中的所有内容。

对我来说有意义的是对每个 View 执行以下操作。

在 myapp 的 views.py 中

  • 所有标签

    从 myapp.models 导入应用程序

    从 taggit.models 导入标签

    类标签列表(ListView):

    """获取数据库中的所有标签 """
    queryset = Tag.objects.all()
    template_name = "myapp/TagList.html"
    paginate_by = 10
  • 一个标签的所有内容

    从 myapp.models 导入应用程序

    从 taggit.models 导入标签

    类标记列表(ListView):
    """获取标签 """的所有内容
    template_name = "myapp/TaggedList.html"

    def get_object(self):
    return get_list_or_404(App, tag__iexact=self.kwargs['tag'])

  • 我是疯了还是真的那么容易?顺便说一句,我正在使用通用类 View 。

    谢谢您的帮助。
    戴夫

    最佳答案

    2.
    我相信这是为了返回单个对象,而不是多个对象。

    def get_object(self):  

    相反,也许您应该尝试以下操作:
    def get_queryset(self):
    return TaggedItem.objects.filter(tag__iexact=self.kwargs['tag'])

    这将返回带有 GenericForeignKeys 的项目列表

    如果您只对名为 App 的特定模型感兴趣,那么
        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())

    关于django - 如何为 django-taggit 创建列表和详细 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314979/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com