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