Django admin site foreign key from dropdown to search_field

Я немного запутался в том, почему выпадающее поле внешнего ключа в админке сайта не меняется на поле поиска. Я прочитал документацию, в которой говорится:

Эти поля должны быть каким-либо видом текстового поля, например, CharField или TextField. Вы также можете выполнить связанный поиск по ForeignKey или ManyToManyField с помощью нотации API поиска "follow":

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)

Когда я хочу создать пользователя вручную через админку сайта, я получаю выпадающий список возможных компаний в качестве внешних ключей enter image description here

Я думал, что это решение должно изменить выпадающий список на поле поиска, но это не так. Что я делаю не так? Как изменить это поле внешнего ключа на поле поиска?

admin.py from django.contrib import admin from .models import Company, User

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


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

Для этого следует использовать 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)
Вернуться на верх