Запрос заблокирован related_name с Django

Это запрос "многие ко многим", но мое "related_name" делает запрос неправильным.

Модель:

class Course(models.Model):
    subscribed = models.ManyToManyField(User, related_name='course_list', blank=True, null=True, limit_choices_to={'userprofile__status': 'student'})

Что я хотел сделать:

for user in User.objects.filter(editedcourse__in=course_list):
    user.course_list.remove(editedcourse)

ошибка:

global name 'course_list' is not defined

другая попытка:

editedcourse.subscribed.clear()

related_name блокирует доступ к subscribed поле.. acourse.subscribed больше не определяется..

Я хотел использовать оба направления, но у меня были проблемы с использованием запросов __set,

Как я могу сделать мой запрос на самом деле и возможно ли все время изменить отношение M2m с __set?

1 ответ

Первая проблема не имеет ничего общего с родственными именами. Вы просто не определили переменную course_list прежде чем пытаться использовать его в запросе. Это должен быть список курсов, с которыми вы хотите соответствовать.

Во второй попытке вы все еще не объяснили, что вы подразумеваете под "related_name блокирует доступ к subscribed". Что такое editedcourse? Откуда ты это взял?

Изменить после комментария

Я хочу найти пользователей с помощью course_list, содержащего 'editedcourse'

Тогда вы делаете вещи совершенно неправильно. У вас есть запрос "Я хочу найти пользователей, которые имеют editedcourse в списке под названием "course_list". Я думаю, что вы имеете в виду:

User.objects.filter(course_list=editedcourse)
Другие вопросы по тегам