Django django .core.exceptions.FieldError: невозможно разрешить ключевое слово - PullRequest
0 голосов
/ 04 мая 2020

Привет, я пытаюсь узнать, существуют ли пользователи в отношениях ManyToMany между моими моделями.

У меня две модели:

  1. Модель курса
  2. Модель профиля

Моя модель курса:

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 %}

Итак, в основном мои намерения следующие:

  1. Добавить пользователя в поле course_likes курсов с тем же кодом сразу
  2. Проверить, есть ли курсы с тем же курсом код имеет пользователя в поле course_likes
...