如何在django中使用ModelChoiceField创建添加按钮?
如何在django中使用ModelChoiceField创建添加按钮?,django,django-forms,Django,Django Forms,IP和System具有一对一的关系 我已经创建了自定义表单 class SystemAdminForm(ModelForm): address = ModelChoiceField(IP.objects.filter(system=None)) class Meta: model = System 这就是我现在使用它的方式 class SystemAdmin(ModelAdmin): form = SystemAdminForm 我想要两件事: IP字段不应显示,地
IP
和System
具有一对一的关系
我已经创建了自定义表单
class SystemAdminForm(ModelForm):
address = ModelChoiceField(IP.objects.filter(system=None))
class Meta:
model = System
这就是我现在使用它的方式
class SystemAdmin(ModelAdmin):
form = SystemAdminForm
我想要两件事:
IP
字段不应显示,地址字段应具有+按钮
我该怎么做
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)
我认为这是删除ip字段的解决方案:
class Meta:
model = System
exclude = ["ip"]
要使用+按钮,您需要在AddressAdmin中重写此函数
class AddressAdmin(ModelAdmin):
def has_add_permission(self, request):
return True
admin.site.register(Adress, AddressAdmin)
IP已经是一个
modelcoocefield
,您有什么问题吗?IP.objects.filter(system=None)您的意思是exclude=(“IP”)
?[“IP”]对不起,我错了。请在管理员中注册地址模型以获得加号。第一个建议有效,谢谢。但是对于第二个问题,你的回答建议和评论建议都不起作用。什么是地址模式?我认为has_add_权限应该放在address admin模型中。我修改了我的答案。