настройка администратора django, чтобы иметь зависимые поля выбора - PullRequest
10 голосов
/ 05 декабря 2011

Я новичок в django, сначала я разрабатываю админ-панель для своего сайта. Мне нужно иметь зависимые поля выбора, чтобы после выбора страны пользователь мог выбрать город. Я хочу, чтобы при выборе страны в окне выбора городов загружались варианты городов этой страны, но я не знаю, как настроить администратора django. Я сделал это в JS, используя AJAX и PHP. Так что я знаю, как сделать это вручную, но не знаю, как использовать ajax в django и как его настроить.

По некоторым другим вопросам, которые я прочитал, нужно читать документацию django, поэтому я попытался прочитать и найти в документации администратора, но не смог найти способ настроить админ панель django. Нужно ли настраивать полную страницу для этих полей выбора? Или, пожалуйста, скажите, как я могу добавить к нему некоторый код jquery, чтобы я мог сделать это через JS?

Ответы [ 2 ]

10 голосов
/ 05 декабря 2011

Возможно, вы захотите использовать функцию Сгруппированный выбор в django smart selects .Из README:

Если у вас есть следующая модель:

class Location(models.Model)
    continent = models.ForeignKey(Continent)
    country = models.ForeignKey(Country)

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

from smart_selects.db_fields import GroupedForeignKey

class Location(models.Model)
    continent = models.ForeignKey(Continent)
    country = GroupedForeignKey(Country, "continent")
0 голосов
/ 05 декабря 2011

Действительно, есть хорошая документация о том, как настроить администратора django. Здесь например, вы можете увидеть, как переопределить шаблоны администратора.

Однако, в случае, если вы представляете, более простой подход, как вы предлагаете, это добавить некоторый код JavaScript, который добавляет полядополнительное поведение.Вы можете указать js-файл с этим кодом в администраторе модели, как объяснено здесь .

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