Доступ к значениям поля ManyToManyField в Django

В своем проекте я создал отношение Many to Many следующим образом:

class CustomUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('Email Address'), unique=True)
    user_name = models.CharField(_('User Name'), max_length=150, unique=True)
    # and a lot of other fields and stuff


class Course(models.Model):
    user = models.ManyToManyField(CustomUser, related_name="enrollments", blank=True, null=True)
    course_name = models.CharField(_("Course Name"), max_length=200)

На сайте Django Admin я создал несколько курсов и добавил в них пользователей. Мне нужно получить список курсов, на которые записался уникальный пользователь и список пользователей, записавшихся на уникальный курс.

Я знаю, что могу получить доступ к диспетчеру Related Manager следующим образом:

user.enrollments

<django.db.models.fields.related_descriptors.create_forward_many_to_many_manager.<locals>.ManyRelatedManager object at 0x7f4df159c0a0>

И я также знаю, что я могу получить доступ к промежуточному классу m2m, используя:

user.enrollments.through

<class 'core.models.Course_user'>

Что я не смог получить (или найти в документации или вообще в интернете), так это как я могу получить доступ к значениям, содержащимся в этом отношении (курсы, на которые зачислен пользователь, и пользователи, зачисленные на курс).

Любая помощь будет оценена по достоинству.

user.enrollments является менеджером, так же как Course.objects является менеджером. Вы можете создать QuerySet объектов с помощью метода .all() [Django-doc]:

user.enrollments.all()  # collection of Courses user is enrolled in

и мы можем запросить пользователей, зарегистрированных в объекте Course course:

course.user.all()  # users enrolled in course
Вернуться на верх