首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django - queryset值为同一模型的每个类别多次返回同一模型

Django - queryset值为同一模型的每个类别多次返回同一模型
EN

Stack Overflow用户
提问于 2016-12-15 19:47:18
回答 1查看 415关注 0票数 0

我从我的视图返回一个json对象到我的客户端。

因此,为了使代码尽可能简单,我这样做:

代码语言:javascript
复制
 def get(self, request, *args, **kwargs):
        inspirations = Inspiration.objects.active_translations(get_language()).filter(publish=True)
        inspirationsFilter = inspirations.values('translations__title', 
            'translations__slug', 'categories__translations__name', 'main_image__file')

        data = JsonResponse(list(inspirationsFilter), safe=False)
        return HttpResponse(data, status=200, content_type='application/json')

但我在这里面临的问题是,这是一个只有类别和标题的印刷品:

代码语言:javascript
复制
[('First Inspiration!', 'category1'), ('Hey max how are you', 'category2'), ('A third inspiration', 'category1'), ('A third inspiration', 'category2')]

正如你所看到的,“第三个灵感”有两个类别相关联,因此它返回每个类别的项目。

我想要的是类似的东西:

代码语言:javascript
复制
...('A third inspiration', ['category1', 'category2'])]

categories是我创建的ManyToMany模型字段,translations是来自django-parler的ManyToMany。

因此,你知道"concat“的解决方案吗?或者我必须手动完成?我尝试过values_list,但返回的结果是一样的。

编辑:在调用.values之前,模型查询是唯一的。

EN

回答 1

Stack Overflow用户

发布于 2016-12-15 19:50:27

由于对translations表的(隐式)联接,您看到了重复的行。

This is actually noted in Parler's readme --所以尝试添加.distinct('id')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41163432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档