Django: Значение QuerySet для точного поиска должно быть ограничено одним результатом при использовании срезов с помощью django
я пишу логику, которая позволит мне отображать все тесты, которые создал учитель из базы данных, теперь я хочу сделать это более точным, показывая студенту тест только на основе курсов, на которые он записан, я пытаюсь написать этот фильтр и он не работает так, как ожидалось
models.py
Class Course(models.Model):
course_creator = models.ForeignKey(User, on_delete=models.CASCADE, related_name="quiz_user")
course_title = models.CharField(max_length=255)
slug = models.SlugField(unique=True)
def __str__(self):
return self.title
class UserCourse(models.Model):
user = models.ForeignKey(User , null = False , on_delete=models.CASCADE)
course = models.ForeignKey(Course , null = False , on_delete=models.CASCADE, related_name="usercourse")
payment_status = models.CharField(max_length=100, choices=PAYMENT_STATUS, default="pending")
date = models.DateTimeField(auto_now_add=True)
class Quiz(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="quiz_user")
title = models.CharField(max_length=255)
course = models.ForeignKey(Course, on_delete=models.SET_NULL, null=True)
date = models.DateTimeField(auto_now_add=True)
slug = models.SlugField(unique=True)
def __str__(self):
return self.title
views.py
def StudentQuizList(request):
user_course = UserCourse.objects.filter(user=request.user)
quizzes = Quiz.objects.filter()
context = {
# 'user_course': user_course,
'quizzes': quizzes,
}
return render(request, 'student_dashboard/quiz.html', context)
error
The QuerySet value for an exact lookup must be limited to one result using slicing.
В функции фильтра можно передать некоторые условия. Например, следующий набор тестов находит те тесты, пользователь курса которых равен request.user
.
quizzes = Quiz.objects.filter(course__course_creator = request.user)