Заменить «добавить новый» на «выбрать существующий» для объекта на странице администратора в Django - PullRequest
0 голосов
/ 06 мая 2011

Я думаю, что это довольно просто, но я новичок в 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) ... но где именно меня держит. Я читал о создании своей собственной формы, но не уверен, что делать дальше. Любая помощь приветствуется. Спасибо.

1 Ответ

0 голосов
/ 06 мая 2011

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

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

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

...