2009-05-25 2 views
1

Django создает окно поиска на странице отображения списка, когда поле «search_fields» включено в ModelAdmin.Как расширить django admin select?

Некоторые из моих встроенных моделей относятся к элементам на странице списка. Если поля поиска соответствуют полям в этих встроенных моделях, я хотел бы, чтобы результаты включали референты в списке.

Пример: в базе данных есть таблица имен и таблица адресов. Для каждого имени может быть несколько адресов. Каждый адрес ссылается на имя. Когда я ищу список имен, я хотел бы иметь возможность вводить «Main Street», искать адреса и иметь имена, на которые ссылаются эти отображаемые адреса.

Я думаю, что мне пришлось бы переопределить функцию поиска, связанную с полем поиска. Если это правильно, где находится эта функция?

ответ

3

Я не сто процентов уверен, что я понимаю ваш вопрос, но вы можете найти на соответствующих областях в списке на экране, установив search_fields в классе администратора:

class MyAdmin(admin.ModelAdmin): 
    search_fields = ('name', 'name__address') 

Это использует то же самое двойное подчеркивание синтаксиса между отношениями, которые вы использовали бы при обычном вызове filter().

+0

Спасибо. Я не думаю, что это сработает для меня, потому что явное поле адреса в записи имени отсутствует. Вместо этого записи адресов содержат ссылку на «имя» в качестве внешнего ключа. – Mitch

+0

Мне потребовалось некоторое время, чтобы понять это, но вы правы. Еще раз спасибо. – Mitch

Смежные вопросы