Джанго Парлер, как получить доступ к переведенному модельному полю из миксина
Я написал эту модель.
class Course(TranslatableModel):
translations = TranslatedFields(
title = models.CharField(max_length=200),
overview = models.TextField(),
slug = models.SlugField(max_length=200, unique=True))
owner = models.ForeignKey(User, related_name='courses_created')
subject = models.ForeignKey(Subject, related_name='courses')
created = models.DateTimeField(auto_now_add=True)
order = OrderField(blank=True, for_fields=['title'])
class Meta:
ordering = ('order',)
def __unicode__(self):
return self.title
И ТАКЖЕ ЭТО класс миксина
class OwnerCourseEditMixin(OwnerCourseMixin, OwnerEditMixin):
fields = ['subject', 'title', 'slug', 'overview']
success_url = reverse_lazy('manage_course_list')
template_name = 'courses/manage/course/form.html'
Строка "fields = ['subject', 'title', 'slug', 'Overview']" вызывает ошибку
Тип исключения: FieldError Значение исключения: неизвестные поля (обзор, фрагмент, заголовок), заданные для курса
Как мне обратиться к переведенным полям? Если я удалю "title", "slug", "Overview" из списка полей, это сработает.
1 ответ
Решение
РЕШИТЬ
При создании переведенных полей django-parler создает модель для каждой переводимой модели. Таким образом, модель для работы - это не сама модель Course, а сгенерированная модель CourseTranslation.
Мне все еще нужно было добавить предметную область в модель перевода, тогда все работало.