Как в django предоставить доступ к разным объектам модели разным пользователям по создателю объекта
Я работаю над проектом учебного класса и я совсем новичок в Django. Как изменить мои модели (курс, пользователь) так, чтобы я мог добавлять студентов в курс двумя способами 1)Путем ввода кода класса студентами. 2) Отправляя приглашения на присоединение студентам из списка всех студентов, выбирая некоторых из них преподавателем, и если студент подтверждает/принимает, то он будет добавлен.
Я прилагаю модели ниже
модель пользователя
class CustomUser(AbstractUser):
email = models.EmailField()
is_teacher = models.BooleanField(default=False)
is_student = models.BooleanField(default=False)
Модель курса
class Course(models.Model):
course_name = models.CharField(max_length=200)
course_id = models.CharField(max_length=10)
course_sec = models.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(25)])
classroom_id = models.CharField(max_length=50,unique=True)
created_by = models.ForeignKey(User,on_delete=models.CASCADE)
slug=models.SlugField(null=True, blank=True)
def __str__(self):
return self.course_name
def save(self, *args, **kwargs):
self.slug = slugify(self.classroom_id)
super().save(*args, **kwargs)
def is_valid(self):
pass
Мнения преподавателей
@login_required
def teacher_view(request, *args, **kwargs):
form = add_course(request.POST or None)
context = {}
if form.is_valid():
course = form.save(commit=False)
course.created_by = request.user
course.save()
messages.success(request, "Class Created Sucessfully")
return redirect('/tdashboard')
context['add_courses'] = form
return render(request, 'teacherview.html', context)
@login_required
def view_courses(request, *args, **kwargs):
courses = Course.objects.filter(created_by=request.user)
dict = {'course': courses}
return render(request, 'teacherhome.html', dict)
создайте отношения many2many между курсами и студентами. Затем вы можете сделать course.add(student), когда у студента есть правильный код приглашения. Это то, что вы хотите?