我需要一些django管理站点的基本帮助。我基本上想要做的是能够使用数据库中的选项填充内联。例如,考虑以下模型:
class Item(models.Model):
description = models.CharField(max_length=100)
class Category(models.Model):
name = models.CharField(max_length=100)
item = models.ForeignKey(Item, on_delete=models.CASCADE, null=True, blank=True)
在 admin.py 中,我进行了以下设置:
class CategoryAdminForm(forms.ModelForm):
name = forms.ChoiceField(choices = category_service.get_all_categories())
class CategoryInline(admin.TabularInline):
model = Category
form = CategoryAdminForm
class ItemAdmin(admin.ModelAdmin):
inlines = [CategoryInline]
admin.site.register(Item, ItemAdmin)
admin.site.register(Category)
我希望能够做的是在db中插入类别,当我想插入一个项目时,内联类别将填充db中的类别。
使用当前设置它无法正常工作。它说类别不是可迭代的对象。我在这里缺少什么?
答案 0 :(得分:0)
您应该将ChoiceField
替换为ModelChoiceField
。它们允许您指定一个查询集来填充选项。
category = forms.ModelChoiceField(queryset=Category.objects.all(), empty_label="(Nothing)")