MyModelAdmin должен иметь поля_поиска для автозаполнения_просмотра

У меня 404 в Admin suggest с ошибкой

ApartmentPromotionAdmin must have search_fields for the autocomplete_view.

Мой админ организован следующим образом

from string import Template

from dal import autocomplete
from django import forms
from django.contrib import admin
from django.contrib.admin.widgets import AutocompleteSelect
from django.forms import widgets



class ApartmentAdmin(admin.ModelAdmin):
    form = ApartmentForm
    list_display = ("id", "address", "apartment_number", "owner")
    search_fields = ["id", "address"]
    autocomplete_fields = ["owner"]

class PromotionApartmentForm(forms.ModelForm):
    class Meta:
        fields = "__all__"
        widgets = {
            "apartment":
            AutocompleteSelect(
                ApartmentPromotion._meta.get_field("apartment").remote_field,
                admin.site,
                attrs={"style": "width: 400px"},  # You can put any width you want.
            ),
        }


class ApartmentPromotionAdmin(admin.ModelAdmin):
    form = PromotionApartmentForm
    list_display = ("id", "apartment")
    autocomplete_fields = ["apartment"]

У меня есть

admin.site.register(ApartmentPromotion, ApartmentPromotionAdmin)

и модели являются

class ApartmentPromotion(models.Model):
    apartment = models.ForeignKey(Apartment, on_delete=models.CASCADE, related_name="promotions")
    ...

    def __str__(self):
        return f"<{self.id}> {self.apartment} {self.status}"

    class Meta:
        indexes = [
            models.Index(fields=["id"]),
            models.Index(fields=["apartment_id"]),
        ]
class Apartment(models.Model):
    owner = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, related_name="owned_apartments")
    ....

    class Meta:
        indexes = [
            models.Index(fields=["owner_id"]),
        ]

не могли бы вы помочь мне решить проблему?

Я нашел решение здесь https://code.djangoproject.com/ticket/32619

Проблема решена. Причина была прослежена до эволюции

BaseModelAdmin.formfield_for_foreignkey method:
if db_field.name in self.get_autocomplete_fields(request):
    kwargs['widget'] = AutocompleteSelect(db_field.remote_field, self.admin_site, using=db)

В моем случае я должен изменить

ApartmentPromotion._meta.get_field("apartment").remote_field,

to

ApartmentPromotion._meta.get_field("apartment"),
Вернуться на верх