如何使用每行不同的值预填充 tabularInline 字段

时间:2021-02-12 01:15:10

标签: python django django-forms django-admin

我有一个带有 TabularInline 类型内联的 ModelAdmin 类。我想要的是 TabularInline 的每一行。 我需要做的是预先选择具有可用语言的选择框,以便它们中的每一个都将其中一种语言作为选定值(例如,第 1 行:英语,第 2 行:阿拉伯语,第 3 行:法语,第 4 行:西班牙语)。

请注意,行数是根据可用语言的数量生成的。

如有任何建议,我们将不胜感激。

enter image description here

我的代码如下所示:

admin.py

class SectorTranslationInline(admin.TabularInline):
    model = SectorTranslation
    form = SectorTranslationForm

    def get_extra(self, request, obj=None, **kwargs):
        lang_count = Language.objects.count()
        return lang_count

    def get_max_num(self, request, obj=None, **kwargs):
        lang_count = Language.objects.count()
        return lang_count

class SectorAdmin(admin.ModelAdmin):
    inlines = [
        SectorTranslationInline
    ]

models.py

class Sector(models.Model):
    _name = models.CharField(max_length=255, null=False, default='')


class Language(models.Model):
    name = models.CharField(max_length=255, null=True)
    name_prefix = models.CharField(max_length=255, null=True)


class SectorTranslation(models.Model):
    lang = models.ForeignKey(Language, related_name='lang_sector_translation', on_delete=models.CASCADE)
    sector = models.ForeignKey(Sector, related_name='sector_translation', on_delete=models.CASCADE)
    name = models.CharField(max_length=255, null=False, default='')

0 个答案:

没有答案