Как изменить способ отображения поля ForeignKey на странице администратора Django, чтобы избежать сбоя браузера? - PullRequest
1 голос
/ 21 июля 2010

У меня есть модель Customer, которая содержит ForeignKey для модели Contact.

У меня более 100 000 контактов в моей БД, и когда я загружаю страницу администратора для конкретного клиента, раскрывающееся меню для контактазаполняется ВСЕМИ контактами в базе данных.Это недавно из-за его длины сдвига стало причиной сбоя моего Firefox во время загрузки страницы администратора.

Есть ли способ:

  1. заменить поле нацелочисленное поле Я могу вручную изменить идентификатор контакта при необходимости
  2. заменить выпадающее меню каким-либо альтернативным способом ввода, который не приведет к сбою браузера
  3. удалить этот ввод со страницы администрирования клиента вообще

Спасибо!

Ответы [ 2 ]

6 голосов
/ 21 июля 2010

Вы можете сделать любой из любой из вещей, которые вы хотите.

Самое простое решение - исключить поле из админа. Просто скажи в классе администратора.

Вы можете изменить поле на ввод текста и отображать его первичный ключ, а не сам элемент, включив его в raw_id_fields класса администратора.

Вы также можете заменить стандартный раскрывающийся виджет вводом в текстовое поле «Автозаполнение». Используйте реализованный виджет или другие эквиваленты. - Вероятно, это решение, которое вам нравится больше всего.

Вы также можете переопределить метод formfield_for_foreignkey в модели Admin, чтобы настроить набор запросов, отображаемый в раскрывающемся списке внешнего ключа. Вы можете проверить мою реализацию для отображения только добавленных сущностей текущего пользователя (или субдомена).

1 голос
/ 21 июля 2010

Звучит так, как если бы вы указали поле contact в raw_id_fields в вашей записи admin.py для соответствующей модели.Документы здесь .

PS.Удивлен (но не настолько удивлен), что FF выдает перед танками сервера базы данных ...

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