Запрос заблокирован 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)