MultipleObjectsReturned в /course/eyime/user_library/
Я создаю сайт, на котором пользователи могут покупать курсы, и курсы будут отображаться в библиотеке пользователей, сайт похож на gumroad, но я получаю эту ошибку, когда я нажимаю на опцию оплаты в моем коде.
Вот сообщения об ошибках, которые я получаю MultipleObjectsReturned at /course/eyime/user_library/
>get() вернула более одной библиотеки UserLibrary - она вернула 2!
вот коды Views.py
@login_required
def user_library(request, username):
user = get_object_or_404(User, username=username)
my_library = UserLibrary.objects.filter(user=user)
if request.method == 'POST':
course_id = request.POST['course_id']
course_price = request.POST['course_price']
course = UserLibrary.objects.get(courses__id=course_id)
"""for c in course.courses.all():
print(c.name)"""
context = {
'course': course,
'course_price': course_price,
'email': request.user.email,
'phone': request.user.phone_number,
}
return render(request, 'courses/content/pay_for_courses.html', context)
return render(request, 'courses/content/user_library.html', {'my_library': my_library})
здесь представлены html-коды для оплаты курсов
и вот html-коды для библиотеки пользователей
Похоже, что эта строка возвращает 2 записи вместо одной:
course = UserLibrary.objects.get(courses__id=course_id)
Используйте filter
вместо get
и итерацию через переменную course
в шаблонном теге, например:
{% for c in course %}
и вместо этого получить доступ к полям c.