2010-02-11 3 views
0

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

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

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 проекта, категория или человека. Или я должен организовать модель по-разному?

ответ

1

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

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

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

3

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

+0

Это похоже на жизнеспособное решение. Я попробую это. Благодарю. –

Смежные вопросы