Как сделать отличающиеся поля у пользователей, в зависимости от их группы?
Пример:
Мне нужно, чтобы у некоторых пользователей отличались поля. Если конкретнее, то, чтобы у одних была возможность добавить несколько групп, у других одну.
Как я это вижу:
1)Сделать, чтобы было 2 модели пользователей Student, Teacher. Они отличаются тем, что у Student есть поле group (foreignkey ), а у Teacher - groups ( manytomany ).
Или
2)Сделать BoolField - teacher, и если оно true, разрешать добавлять несколько групп, иначе только одну.
Второй способ кажется мне не очень адекватным, поэтому прошу подсказать, как реализовать 1 или подсказать более подходящий.
class BaseUser:
... общие для разных видов пользователей поля
class Meta:
abstract = True
class Student(BaseUser):
group = models.ForeignKey(...
class Teacher(BaseUser):
groups = models.ManyToManyField(...
Dr. Bacon, ну если надо чтобы пользователи участвовали в авторизации - класс BaseUser сделать не абстрактным - наследоваться от стандартного юзера джанго. Его и указывать. Остальное - без изменений...