[英]Multiselect form in Django Admin
我試圖將多選小部件添加到與字符字段相對應的管理視圖中。
models.py
class Campaign(models.Model):
name = models.CharField(max_length=128)
start_date = models.DateTimeField(default=timezone.now)
end_date = models.DateTimeField(blank=True, null=True)
budget = models.IntegerField()
target = models.IntegerField()
component_choices = models.CharField(max_length=128, null=True, blank=True)
管理員
class CampaignAdmin(admin.ModelAdmin):
fieldsets = (
('Main', {
'fields': ('name', ('start_date', 'end_date',),),
}),
('Budget', {
'fields': ('budget', 'target',),
}),
('Payment', {
'fields': ('payment_terms', 'payment_initial', 'payment_per_mvm'),
}),
)
form = ComponentChoicesForm
admin.site.register(Campaign, CampaignAdmin)
表格
class ComponentChoicesForm(ModelForm):
component_type_choices = tuple(
(x.id, str(x))
for x in ComponentType.objects.all()
)
class Meta:
model = ComponentType
fields = '__all__'
available_components = forms.MultipleChoiceField(
choices=component_type_choices)
但是,上面的代碼僅顯示fieldsets
,而不顯示ComponentTypeChoices
表單。 我的目的是讓用戶從我在forms.py
中的admin.py
中生成的選項中進行選擇,以便填充Campaign.component_choices
字段。
您已經為其他模型創建了表單,並在Campaign模型管理員中使用了該表單。 您應該為Campaign
模型而不是ComponentType
創建模型形式。
您的表單和模型管理員應該是這樣的,
表格
class CampaignForm(ModelForm):
class Meta:
model = Campaign
fields = '__all__'
OPTIONS = (('a', 'A'),('b', 'B'),('c', 'C'))
available_components = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=OPTIONS)
管理員
class CampaignAdmin(admin.ModelAdmin):
form = CampaignForm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.