Django modeltranslation не работает с таким набором запросов

Я новичок в программировании.

В моем блоге я хочу показать список категорий. Если я создам набор запросов следующим образом:

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) 

Я думаю, что лучше делать запрос в обратном порядке: с помощью .values(…) вы выбираете конкретный столбец базы данных, поэтому здесь будет опущена логика модели.

Вы можете получить категории с помощью:

Category.objects.filter(posts__is_published=True).distinct()
Вернуться на верх