Ответ 1
как и для других параметров администратора, вам необходимо использовать __ для внешнего ключа, например.
search_fields = ['id', 'transaction__id']
Я пытаюсь добиться чего-то явно простого, но я не мог найти ответа ни на 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 не называет поле. Есть идеи? Под "поиском" я имею в виду возможность вставить идентификатор транзакции в поле поиска на странице "Администрирование отправки", нажать "поиск" и автоматически получить соответствующие транзакции.
как и для других параметров администратора, вам необходимо использовать __ для внешнего ключа, например.
search_fields = ['id', 'transaction__id']
документация по поисковым системам:
Вы также можете выполнить соответствующий поиск на сервере ForeignKey или ManyToManyField с помощью API поиска "follow"
Решение:
search_fields = ['id', 'transaction__id']