如何在django中使用ModelChoiceField创建添加按钮?

时间:2014-02-04 12:00:16

标签: django django-forms

IPSystem有一对一的关系。

我已创建自定义表单

class SystemAdminForm(ModelForm):
    address = ModelChoiceField(IP.objects.filter(system=None))

class Meta:
    model = System

这就是我现在正在使用它的方式。

class SystemAdmin(ModelAdmin):
    form = SystemAdminForm

我想要两件事:

IP字段不应显示,地址字段不能显示+按钮。

我该怎么做?

enter image description here

class IPAdmin(ModelAdmin):
    fields = ['name', 'ip']

    def has_add_permission(self, request):
        return True

class SystemAdmin(ModelAdmin):
    form = SystemAdminForm

    def has_add_permission(self, request):
        return True

admin.site.register(System, SystemAdmin)
admin.site.register(IP, IPAdmin)

1 个答案:

答案 0 :(得分:1)

我认为这是删除ip字段的解决方案:

class Meta:
    model = System
    exclude = ["ip"]

要使用+按钮,您需要在AddressAdmin中覆盖此功能

class AddressAdmin(ModelAdmin):
    def has_add_permission(self, request):
        return True
admin.site.register(Adress, AddressAdmin)