У меня есть проект, который включает в себя два разных приложения: пользователи и школа. В моей текущей реализации пользовательское приложение содержит пользовательский класс пользователя, производный от абстрактного пользователя Djagno. Он определяет разрешенные типы пользователей как ученик или учитель, и пользователь должен выбрать один во время регистрации. Школьное приложение содержит модель классной комнаты, которая мне нужна для учеников и одного или нескольких учителей.
У меня есть две основные проблемы. Первый касается того, как связать модель классной комнаты только с конкретными пользователями, ограничивающими их доступ в зависимости от их типа. Я попытался использовать отношение ManyToManyField в модели классной комнаты, чтобы связать экземпляр с пользователем, который его создал (а затем я позже позволил бы пользователю добавлять студентов). Похоже, я не правильно понимаю это поле - это фактически все пользователи для всех экземпляров класса. Это, очевидно, не соответствует моему требованию ограничить доступ между различными экземплярами классной комнаты.
OneToOneField и ForeignKey, похоже, также не соответствуют моим потребностям. Я попытался добавить эти поля для своего пользователя, но затем я ограничен одной аудиторией для каждого пользователя, что также неприемлемо.
Я также поиграл с созданием групп с именами, такими как "Classroom_A_teachers" и "Classroom_A_students". "и затем назначая им разрешения. Этот подход кажется более сложным, чем необходимо.
Я что-то упускаю здесь? Это мой первый проект Django, и я легко мог пропустить что-то простое.
Проблема вторая - добавить модель учителя и ученика. Я хотел бы позволить пользователю, зарегистрированному в качестве учителя, иметь возможность создавать экземпляр класса, а затем заполнять этот класс экземплярами учащихся. Студенты также могут при желании создать учетную запись. Они получат идентификатор класса от своего учителя, введут его, и их учетная запись будет затем привязана к экземпляру класса. Как я могу затем связать этого пользователя с существующей моделью ученика? Я играл с этой концепцией безуспешно.
Любое понимание очень ценится!