Подтвердить что ты не робот

Поиск по внешнему ключу в admin

Я пытаюсь добиться чего-то явно простого, но я не мог найти ответа ни на Google, ни здесь. У меня есть модель Django, что-то мертвое-просто:

class Shipment(models.Model):
    id = models.AutoField(primary_key=True)
    transaction = models.ForeignKey(Transaction)

Я хотел бы иметь возможность искать на моей странице администрирования отправки transaction.id. Для ясности, Я хочу это (этот код явно не работает):

class ShipmentAdmin(admin.ModelAdmin):
    list_display = ('id', 'transaction')
    search_fields = ['id', 'transaction.id']

Это не может работать, потому что transaction.id не называет поле. Есть идеи? Под "поиском" я имею в виду возможность вставить идентификатор транзакции в поле поиска на странице "Администрирование отправки", нажать "поиск" и автоматически получить соответствующие транзакции.

4b9b3361

Ответ 1

как и для других параметров администратора, вам необходимо использовать __ для внешнего ключа, например.

search_fields = ['id', 'transaction__id']

Ответ 2

документация по поисковым системам:

Вы также можете выполнить соответствующий поиск на сервере ForeignKey или ManyToManyField с помощью API поиска "follow"

Решение:

search_fields = ['id', 'transaction__id']