Привет, я пытаюсь узнать, существуют ли пользователи в отношениях ManyToMany между моими моделями.
У меня две модели:
- Модель курса
- Модель профиля
Моя модель курса:
class Course(models.Model):
course_code = models.CharField(max_length=20)
course_content = models.CharField(max_length=100)
course_name= models.CharField(max_length=100)
course_likes = models.ManyToManyField(Profile, blank=True, related_name='course_likes')
и мои пользовательские модели У меня есть это поле:
courses = models.ManyToManyField('home.Course',related_name='profiles')
в моей модели курса, У меня есть метод, который фильтрует курсы на основе курса независимо от описания курса и проверяет, существует ли пользователь:
def is_liked(self,user):
Course.course_likes.through.objects.filter(course_code=self.course_code,
profiles__id=user.id).exists()
, и я также пытаюсь добавить пользователя в список лайков:
Course.objects.get(course_code=code).course_likes.add(request.user)
Что, по моему мнению, также неверно (еще не тестировалось, так как первый шаг - проверить, существует ли уже пользователь)
Теперь, когда я тестирую метод проверки, существует ли пользователь, я получаю ошибка:
django.core.exceptions.FieldError: Cannot resolve keyword 'course_code' into field. Choices are: course, course_id, id, profile, profile_id
Я использую тег шаблона, выполните метод, используя:
@register.simple_tag(takes_context=True)
def check_is_liked(context):
request = context['request']
course = context['course']
return course.is_liked(request.user)
Что, как мне кажется, работает правильно, поскольку ошибка связана с функцией моих моделей.
В моем шаблоне я использую (я проверил, что объект курса отправляется правильно ):
{% with course=course %}
{% check_is_liked as liked %}
{% endwith %}
Итак, в основном мои намерения следующие:
- Добавить пользователя в поле course_likes курсов с тем же кодом сразу
- Проверить, есть ли курсы с тем же курсом код имеет пользователя в поле course_likes