Django管理外键字段过滤

时间:2014-12-07 13:05:23

标签: django widget django-admin

我的客户端模型具有国家/地区模型的外键字段。

所以在Django admin中,当我创建一个客户端时,我选择了这个客户端所属的国家。但问题是选择列表太长(这个星球上的国家太多)。有时候我需要的时间太长了。

所以我想知道djano admin中是否有其他小部件提供了一个select-input-combo小部件。 当我输入输入时,它将过滤掉正确的输入供我选择。

希望你能理解我需要的东西。

2 个答案:

答案 0 :(得分:3)

你知道raw_id_fields了吗?

你会在admin.py中做类似的事情:

class ClientAdmin(admin.ModelAdmin):
    raw_id_fields = ("country",)
admin.site.register(Client, ClientAdmin)

然后选择小部件将变成类似:

enter image description here

答案 1 :(得分:0)

自Django 2.0起,就有autocomplete_fields。来自documentation

autocomplete_fields是要更改为Select2自动完成输入的ForeignKey和/或ManyToManyField字段的列表。

Select2输入看起来与默认输入类似,但是具有搜索功能,该功能异步加载选项。如果相关模型有很多实例,则这将更快,更友好。

请注意,由于小部件使用了search_fields,因此需要在相关对象的ModelAdmin中对其进行定义。