簡體   English   中英

如何使用filter_horizo​​ntal在django admin中顯示多對多字段的所有可用選擇

[英]How to display all available choices of a manytomany field in django admin using filter_horizontal

我有兩個具有多對多關系的模型。 一個模型包含所有可能的選擇,而另一個模型可以具有部分或全部這些選擇。

這是兩個模型:

class LanguageDomains(models.Model):
    DOMAIN_CHOICES=(
    ('Choice1', _(u'Choice1')),
    ('Choice2', _(u'Choice2')),
    ('Choice3', _(u'Choice3')),
    ('Choice4', _(u'Choice4')),
    )
    # There is many more choices in the actual code
    domains = models.CharField(max_length=255, choices=DOMAIN_CHOICES, default=None)

    def __unicode__(self):
        return self.domains

class Revitalization(models.Model):
    code = models.ForeignKey(Codes, related_name ='revitalization')
    program_name = models.CharField(max_length=255, null=True, blank=True)
    year_founded = models.CharField(max_length=4, null=True, blank=True)
    some_domains = models.ManyToManyField(LanguageDomains, related_name='revitalization')

    def __unicode__(self):
        return self.code.primary_name

我的admin.py:

class RevitalizationAdmin(admin.ModelAdmin):
    list_display = ('code','id')
    filter_horizontal = ('language_domains',)

管理控制台如下所示: 在此處輸入圖片說明

問題是,是否有一種方法可以使用LanguageDomains模型中的所有DOMAIN_CHOICES填充“可用語言域”列表?

您可以編寫一個數據遷移 ,其中將使用所有可用選項填充LanguageDomains模型表。

根據您的用例,如果LanguageDomains的唯一目的是呈現多個選擇並且不打算在運行時對其進行編輯,請使用django-multiselectfield進行研究

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM