Я пишу проект в Django, где у меня 5 групп пользователей:
Тогда у меня есть Модель, Элемент , которая имеет много отношений с пользователями, у Элемента есть один Владелец (Пользователь в Группе1), Клиент (Пользователь в Группе2) и много RelatedUser (Пользователи в Group3).
Мне интересно, как правильно написать эти отношения. Я хотел бы написать что-то вроде:
class Item(models.Model):
owner = models.ForeignKey(Owner)
customer = models.ForeignKey(Customer)
users = models.ManyToManyField(RelatedUser)
Определив каким-либо образом классы Owner, Customer и RelatedUser.
Я не знаю, как этого добиться. Я не хочу использовать модели наследования, потому что я просто хочу таблицу User. Даже Менеджеры, кажется, не помогают мне. На самом деле я использую что-то вроде этого:
try:
customer = models.ForeignKey(User,
related_name='cust',
limit_choices_to = {'groups__in': [Group.objects.get(name = 'customers')]})
except:
customer = models.ForeignKey(User,
related_name='cust')
В основном потому, что при запуске пустой базы данных группа «клиенты» не существует и возникают ошибки.
Какой правильный способ позволить себе это?
Заранее спасибо