gpt4 book ai didi

Django 管理员 : How to customize one field in fieldsets?

转载 作者:行者123 更新时间:2023-12-04 02:06:00 24 4
gpt4 key购买 nike

我尝试在 django admin 的字段集中创建一个字段以仅显示某些数据,但根据 django document ,只是list_display的一个例子显示可以自定义。我在 fieldsets 上尝试了类似的方法像下面这样:

在models.py中:

def ports_with_same_scanner(self):
return PortList.objects.filter(scanner=self.scanner)
ports_with_same_scanner.short_description = 'port_lists'

在 admin.py 中,这不起作用:
fieldsets = (
('Scan Template', {
'fields': ( ('name', 'scanner', 'ports_with_same_scanner',), 'comment', ('in_use',
'fc_growing', 'nc_growing'), 'nvt_prefs')
}),
)

但是,如果我这样做:
list_display = ('name', 'scanner', 'ports_with_same_scanner', 'comment', 'in_use', 'fc_growing', 'nc_growing', 'nvt_prefs')
ports_with_same_scanner工作得很好。问题是我不想改变我的显示 fieldsetslist_display ,我想知道如何实现相同的功能。谢谢。

最佳答案

在模型级别应用过滤器会起作用吗?如果是这样,您可以使用 limit_choices_to模型的属性 ForeignKeyField .

或者,您可以覆盖 formfield_for_foreignkey modelAdmin 类的属性。

就像是 -

class YourModelAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "ports_with_same_scanner":
kwargs["queryset"] = PortList.objects.filter(scanner=self.scanner)
return super(YourModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

(如果我误解了这个问题,请道歉)

关于Django 管理员 : How to customize one field in fieldsets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15228301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com