1

我写了这个模型。

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”,它就可以工作。

4

1 回答 1

3

解决了

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

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

于 2018-03-30T11:36:28.183 回答