Django多个内联下拉预填充

时间:2016-07-30 09:34:45

标签: python django django-models django-forms django-admin

我有一个Django 1.8.7应用程序和一个带字段内联的模型" description"用多种语言。

目标是每种语言都没有或一个内联顶部。如何确保语言未填充两次并强制每个语言和对象使用一个内联?

是否可以使用Inline中的语言下拉,但不能编辑,并且每种语言都预先填充一种语言。例如,假设我在Django设置中使用德语和英语作为语言。然后我想要一个代表德语的Inline和一个代表英语的Inline。

有没有人有想法如何实现?

代码段:

models.py:

class LocalizedAuthorDetails(models.Model):
    language = models.CharField(
        _('language'),
        max_length=64,
        db_index=True,
        choices=get_author_language_choices(),
        default=get_author_language_choices()[0],
    )
    external_author = models.ForeignKey(
        'ExternalAuthor', verbose_name=_('external_author'))
    description = models.TextField(
        _('description'),
        blank=True,
        null=True
    )
    comment = models.TextField(
        _('comment'),
        blank=True,
        default=''
    )

AdminInline:

class LocalizedAuthorDetailsBackend(admin.StackedInline):

    model = LocalizedAuthorDetails
    max_num = len(settings.LANGUAGES)

使用Inline的AdminForm:

class AuthorBackend(BackendModelAdmin, ExternalAuthorAdmin):
    list_display = ('Thumbnail', 'FullName', 'email', 'public')
    inlines = (LocalizedAuthorDetailsBackend, )

0 个答案:

没有答案