我有两个有多对多关系的模型。一个模型包含所有可能的选择,另一个模型可以包含部分或全部选择。
以下是两种模式:
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?
答案 0 :(得分:0)
您可以编写一个data migration来填充LanguageDomains模型表,其中包含所有可用选项。
根据您的用例,如果LanguageDomains的唯一目的是提供多个选项并且不会在运行时进行编辑,请使用django-multiselectfield。