【问题标题】:django admin site foreign key from dropdown to search_fielddjango 管理站点外键从下拉列表到 search_field
【发布时间】:2021-11-04 14:22:12
【问题描述】:

我有点不明白为什么管理站点中的外键下拉字段没有更改为搜索字段。我阅读了以下文件:

这些字段应该是某种文本字段,例如 CharField 或 文本域。您还可以对 ForeignKey 或 带有查找 API “follow” 表示法的 ManyToManyField:

search_fields = ['foreign_key__related_fieldname']

我有两个模型:

class Company(models.Model):
    company = models.CharField(max_length=100)

class User(AbstractUser):
    company = models.ForeignKey(Company, on_delete=models.CASCADE)

当我想通过管理站点手动创建用户时,我会得到一个可能的公司的下拉列表作为外键

我虽然这个解决方案应该将下拉菜单更改为搜索字段,但它不是。我在这里做错了什么?如何将此外键字段更改为搜索字段?

admin.py 从 django.contrib 导入管理员 from .models 导入公司、用户

class MyAdmin(admin.ModelAdmin):
    search_fields = ['company__company']


admin.site.register(Company)
admin.site.register(User, MyAdmin)

【问题讨论】:

    标签: python django


    【解决方案1】:

    您应该为此使用autocomplete_fields。在要搜索的管理员上配置search_fields,并将该管理员/模型的外键添加到autocomplete_fields

    class CompanyAdmin(admin.ModelAdmin):
        search_fields = ['company']
    
    
    class MyAdmin(admin.ModelAdmin):
        autocomplete_fields = ['company']
    
    
    admin.site.register(Company, CompanyAdmin)
    admin.site.register(User, MyAdmin)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-12
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      相关资源
      最近更新 更多