Поиск по внешнему ключу в админке - PullRequest
15 голосов
/ 07 февраля 2012

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

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

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

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

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

Ответы [ 2 ]

43 голосов
/ 07 февраля 2012

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

search_fields = ['id', 'transaction__id']
6 голосов
/ 07 февраля 2012

документация search_fields :

Вы также можете выполнить связанный поиск в ForeignKey или ManyToManyField с помощью нотации поиска «follow» API

Решение:

search_fields = ['id', 'transaction__id']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...