@dert2313

Как сделать отличающиеся поля у пользователей, в зависимости от их группы?

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

Как я это вижу:
1)Сделать, чтобы было 2 модели пользователей Student, Teacher. Они отличаются тем, что у Student есть поле group (foreignkey ), а у Teacher - groups ( manytomany ).

Или

2)Сделать BoolField - teacher, и если оно true, разрешать добавлять несколько групп, иначе только одну.

Второй способ кажется мне не очень адекватным, поэтому прошу подсказать, как реализовать 1 или подсказать более подходящий.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 2
Sanes
@Sanes
Таблицы profile_xxx с разным набором полей.
Ответ написан
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
class BaseUser:
      ... общие для разных видов пользователей поля

     class Meta:
           abstract = True


class Student(BaseUser):
     group = models.ForeignKey(...


class Teacher(BaseUser):
     groups = models.ManyToManyField(...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы