【问题标题】:django modeltranslation doesn't work with such querysetdjango modeltranslation 不适用于此类查询集
【发布时间】:2022-01-26 11:09:14
【问题描述】:

我是编程新手。

在我的博客中,我想显示一个类别列表。 如果我创建这样的查询集:

Category.objects.all()

我的 django-modeltranslation 效果很好。

但我想获取仅已发布帖子的类别。那么我的查询集是:

Post.objects.values('category__name').filter(is_published=True)

但是,django-modeltranslation 不起作用。我从“name”字段而不是“name_en”或“name_ru”字段获取值。

怎么了?

这是我的 models.py :

class Category(models.Model):
    name = models.TextField(max_length=100)
    url = models.SlugField(max_length=160, unique=True)


class Post(models.Model):
    title = models.TextField('title', max_length=150)
    category = models.ManyToManyField(Category, related_name='posts', blank=True) 

【问题讨论】:

    标签: python django django-queryset


    【解决方案1】:

    我认为您最好反向查询:使用.values(…) 您选择特定的数据库列,因此这将省略模型逻辑。

    您可以通过以下方式检索类别:

    Category.objects.filter(<strong>posts__is_published=True</strong>)<strong>.distinct()</strong>

    【讨论】:

    • 你是对的。非常感谢
    猜你喜欢
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    相关资源
    最近更新 更多