Python 3.x 如何将实例传递给视图?
我无法理解系统正在恢复的抱怨。 这是系统的视图Python 3.x 如何将实例传递给视图?,python-3.x,django,django-views,Python 3.x,Django,Django Views,我无法理解系统正在恢复的抱怨。 这是系统的视图 def AddMarksView(request): class_name = request.session.get('class_name') subject = Subject.objects.filter(name='Maths') exam = Exam.objects.filter(name='Endterm') students = Students.objects.
def AddMarksView(request):
class_name = request.session.get('class_name')
subject = Subject.objects.filter(name='Maths')
exam = Exam.objects.filter(name='Endterm')
students = Students.objects.filter(school=request.user.school,klass__name = class_name,stream__name='South')
if request.method == 'POST':
for student in students:
marks = int(request.POST['marks'])
marks_object = Marks.objects.create(student=student,marks=marks,subject=subject,exam=exam)
else:
return render(request,'feed_marks.html')
return redirect('search_m')
返回的错误是
Cannot assign "<QuerySet [<Exam: Endterm>]>": "Marks.exam" must be a "Exam" instance.
如何格式化视图以使其不返回错误?请尝试获取而不是筛选,以便代码读取
def AddMarksView(request):
class_name = request.session.get('class_name')
subject = Subject.objects.get(name='Maths')
exam = Exam.objects.get(name='Endterm')
students = Students.objects.filter(school=request.user.school,klass__name = class_name,stream__name='South')
if request.method == 'POST':
for student in students:
marks = int(request.POST['marks'])
marks_object = Marks.objects.create(student=student,marks=marks,subject=subject,exam=exam)
else:
return render(request,'feed_marks.html')
return redirect('search_m')
非常感谢@Ptar。它是那样工作的。。。
def AddMarksView(request):
class_name = request.session.get('class_name')
subject = Subject.objects.get(name='Maths')
exam = Exam.objects.get(name='Endterm')
students = Students.objects.filter(school=request.user.school,klass__name = class_name,stream__name='South')
if request.method == 'POST':
for student in students:
marks = int(request.POST['marks'])
marks_object = Marks.objects.create(student=student,marks=marks,subject=subject,exam=exam)
else:
return render(request,'feed_marks.html')
return redirect('search_m')