django外键太多 如何在admin中搜索选取
2022-07-26 # django

django是个逻辑缜密的好东西,但因为集成度太高,导致深度修改和使用的时候有点费劲。周末遇到个问题,就是一个字段里面有外键,但外键本身已经非常多了,超过一万。在admin中根本无法选取,django可以把下拉菜单,变成搜索选择框。

在admin.py 中的修改admin 类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.contrib import admin
from .models import ArticlePost
from .models import pan

class ArticleAdmin(admin.ModelAdmin):
search_fields = ('title',) #作为外键,必须设置搜索字段,作为下面搜索的对象

class PanAdmin(admin.ModelAdmin):
autocomplete_fields = ['post'] #这个post是外键的字段名


admin.site.register(ArticlePost,ArticleAdmin)
admin.site.register(pan,PanAdmin)

另外记录下如何在模型中设置外键为搜索栏。

1
2
class PanAdmin(admin.ModelAdmin):    
search_fields = ('title','post__title') #使用 '外键名__外键所属模型的搜索字段' 这样的格式,如'post__title',注意是2个下划线,不是一个。