Замените «добавить новый» на «выбрать существующий» для объекта на странице администратора в Django.

Я думаю, что это довольно просто, но я новичок в Django и не могу найти ни одного вопроса, который соответствовал бы моему.

Вот моя модель--

class Team:
    # attributes for team

class Driver:
    # attributes for driver
    team = foreign_key(Team, blank=True, null=True)

Теперь в каждой команде должно быть по три гонщика, а некоторые гонщики не будут принадлежать ни одной команде. В панели администратора, когда я создаю новую команду, я могу получить только «Добавить нового водителя», и вы заполняете данные о водителе. Вместо этого я хочу, чтобы это было заменено раскрывающимся списком драйверов, которые уже существуют в системе, у которых еще нет команды.

Я знаю, что должен где-то использовать Driver.objects.filter(team__isnull=True)... но где именно меня задерживают. Я читал о создании собственной формы, но не знаю, как действовать дальше. Любая помощь приветствуется. Спасибо.


person apexdodge    schedule 05.05.2011    source источник


Ответы (1)


Я думаю, что следующее позволит вам достичь того, чего вы хотите. Вы также можете использовать это, чтобы ограничить количество объектов Driver, прикрепленных к Team.

Я бы также обязательно проверил количество объектов Driver в команде в методе сохранения Driver; это гарантирует, что если вы добавляете объекты «Водитель» в команду со страницы администратора водителя (т. е. создаете объект «Водитель» и выбираете для него команду тут же), вы не получаете слишком много объектов «Водитель», прикрепленных к команде.

http://docs.djangoproject.com/en/1.3/ref/contrib/admin/#inlinemodeladmin-objects

person Dominic Santos    schedule 05.05.2011