Django: Поле 'id' ожидало число, но получило <Видео: Введение

Я пытаюсь получить id видео, но он продолжает показывать эту ошибку Field 'id' expected a number but got <Video: Introduction>. Как мне добавить number, что ожидается, а не строку.

views.py

def mark_lesson_done(request, course_slug, video_id):
    user = request.user
    profile = Profile.objects.get(user=user)
    course = Course.objects.get(slug=course_slug)
    video = Video.objects.get(id=video_id)
    

    complete_lesson = False
    if not profile.completed_lessons.get(id=video).id().exists():
        profile.completed_lessons.add(videos)
        messages(request, f'Lesson Completed!')
        complete_lesson = True
    return HttpResponseRedirect(reverse('course:course-content', args=[course_slug]))

удалите .id() и добавьте его в id=video if not profile.completed_lessons.get(id=video.id).exists():

Вы можете получить свои курсы, используя get_objects_or_404

courses = get_objects_or_404(Course, slug=course_slug)
videos = get_objects_or_404(Video, id=video_id)

В шаблоне курса внутри цикла for добавьте:

{% for course in courses %}

 <a href="{% url 'ViewCourse' course.slug %}">View<a/>

{% endfor %}

И в вашем шаблоне Video добавьте:

{% for video in videos %}

<a href="{% url 'ViewVidoe' video.id %}">View<a/>

{% endfor %}
Вернуться на верх