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.

Back to Top