как мы используем фитер в view.py для многоязычной модели в hvad

Я использую многоязычное приложение, которое я разработал для курса, использую для этого hvad

модели.py

из hvad.models импортировать TranslatableModel, TranslatedFields, TranslationManager

Курс класса (TranslatableModel):

translations = TranslatedFields(
    domain = models.ForeignKey('domain.Domain'),
    #track = models.ForeignKey('track.Track'),
    track = models.ForeignKey('track.Track', blank=True, null=True),
    course_nm = models.CharField(max_length=100, verbose_name =_('Course Name')),
    nature_of_training = models.TextField(verbose_name = _('Nature of Training')),
    duration = models.PositiveIntegerField(verbose_name =_('Duration')),
    sem = models.PositiveIntegerField(verbose_name =_('Semester')),
    degree_level = models.CharField(max_length=100, verbose_name =_('Degree Level')),
    credit = models.PositiveIntegerField(verbose_name =_('Credits')),
    locations = models.CharField(max_length=100, verbose_name =_('Locations')),
    accessible = models.CharField(max_length=100, verbose_name =_('Accessible')),
    des = models.TextField(verbose_name = _('Description')),
    admission_details = models.TextField(verbose_name = _('Admission Details')),
    further_study_details = models.TextField(verbose_name = _('Further Study Details')),
    seats = models.PositiveIntegerField(verbose_name =_('Seats')),

    title = models.CharField(max_length=512, verbose_name=_('Title')),
    slug = models.SlugField(max_length=512, verbose_name=_('Slug')),
    created_date = models.DateTimeField(auto_now_add=True, blank=True, null=True),
    updated_date = models.DateTimeField(auto_now=True, blank=True, null=True),
    created_by = models.ForeignKey(User, blank=True, null=True, editable=False),      
)

В представлениях.py

def get_context_data (я, ** kwargs):

    context = super(DegreeDetailView, self).get_context_data(**kwargs)

    context['courses'] = Course.objects.all().order_by('track')

    return context

когда я использую order_by в views.py, это дает следующую ошибку

Чтобы получить доступ к переведенным полям, таким как «отслеживание», из непереведенной модели, вы должны использовать диспетчер, поддерживающий перевод, который можно получить с помощью nani.utils.get_translation_aware_manager.

Я много ищу, но не могу найти решение, пожалуйста, помогите! Заранее спасибо!!


person Kartik    schedule 17.09.2014    source источник


Ответы (1)


Уже слишком поздно, так как вы задали этот вопрос ... но если есть кто-то, кто страдает такой проблемой, как я.

Я использовал набор запросов следующим образом:

Course.objects.untranslated().prefetch_related('translations').all().filter(translations__track__icontains='lorem ipsum')

И я рекомендую не использовать ForeignKeys в translations().

person Kyuhyeok Park    schedule 09.06.2017