【问题标题】:Django Parler how to access translated model field from a mixinDjango Parler 如何从 mixin 访问已翻译的模型字段
【发布时间】:2018-03-30 10:24:22
【问题描述】:

我已经写了这个模型。

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

还有这个 mixin 类

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 异常值:为课程指定的未知字段(概述、slug、标题)

如何引用已翻译的字段?如果我从字段列表中删除“title”、“slug”、“overview”,它就可以工作。

【问题讨论】:

    标签: django python-2.7 mixins django-parler


    【解决方案1】:

    已解决

    当创建翻译字段时,django-parler 为每个可翻译模型创建一个模型。因此,要使用的模型不是 Course 模型本身,而是生成的 CourseTranslation 模型。

    我仍然需要将主题字段添加到翻译模型中,然后一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 2019-08-10
      • 2021-03-21
      • 2018-01-30
      • 1970-01-01
      • 2015-06-03
      • 2018-08-28
      • 2020-03-03
      相关资源
      最近更新 更多