Эксклюзив или ForeignKey в интерфейсе администратора Django - PullRequest
0 голосов
/ 11 февраля 2010

В Django есть способ заставить пользователей-администраторов выбрать заполнение одного из нескольких ForeignKeys, но не более одного?

У меня есть модель что-то вроде:

class URL(models.Model):
    ...
    links = models.URLField(_('Google Links'),verify_exists=True,unique=True)
    project = models.ForeignKey(Project,blank=True,null=True)
    category = models.ForeignKey(Category,blank=True,null=True)
    person = models.ForeignKey(ExternalPerson,blank=True,null=True)
    ...

Я хочу, чтобы пользователь-администратор выбрал один из проектов, категории или персонажа Foreignkeys. Или я должен организовать модель по-другому?

Ответы [ 2 ]

3 голосов
/ 28 октября 2010

Что я сделал, так это имел один внешний ключ, который указывает на базовую модель, от которой наследуются все другие модели (Google Link, Projects и т. Д.). Это, кажется, поддерживает отношения, ограничивая внешний ключ одним выбором.

1 голос
/ 11 февраля 2010

Просто некоторые идеи ...

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

Если интерфейс вам не подходит, возможно, вы могли бы создать форму, чтобы проверить, что был выбран только один из ForeignKeys.

...