Django:get()返回了多个
我无法从数据库中获取数据 基本上,一名教师可以创建更多的Django:get()返回了多个,django,orm,many-to-many,Django,Orm,Many To Many,我无法从数据库中获取数据 基本上,一名教师可以创建更多的教室,每个教室包含一个标题,并且有更多的学生 型号.py class class_room(models.model): user = models.ForeignKey(User,related_name = 'classroom') title = models.charField(max_length=50) students = models.ManyToManyField(User,related_name
教室
,每个教室包含一个标题
,并且有更多的学生
型号.py
class class_room(models.model):
user = models.ForeignKey(User,related_name = 'classroom')
title = models.charField(max_length=50)
students = models.ManyToManyField(User,related_name= 'commits',symmetrical=FAlSE)
def index(request):
user = request.user
Total_class = class_room.objects.get(user = user)
students_list = Total_class.students.all()
class_name = Total_class.title.all()
return render(request,'trial/index.html,{'Total':Total_class ,'no':students_list, 'class_name ':class_name )
视图.py
class class_room(models.model):
user = models.ForeignKey(User,related_name = 'classroom')
title = models.charField(max_length=50)
students = models.ManyToManyField(User,related_name= 'commits',symmetrical=FAlSE)
def index(request):
user = request.user
Total_class = class_room.objects.get(user = user)
students_list = Total_class.students.all()
class_name = Total_class.title.all()
return render(request,'trial/index.html,{'Total':Total_class ,'no':students_list, 'class_name ':class_name )
当我尝试执行此代码时。我发现此错误get()返回了多个
然后我删除了get()bcoz,因为用户有更多的教室
,所以我把filter()放在后面,然后我得到“QuerySet”对象没有属性“students”
感谢您的帮助:(您在数据库中有多个model
class_room
对象,并且具有相同的用户
。或者您需要强制模型中的用户
属性的唯一性
或者,您可以获取查询中第一个对象的students属性,如下所示:
Total_class = class_room.objects.filter(user = user).first()
students_list = Total_class.students.all()
或者使用索引
Total_class = class_room.objects.filter(user = user)[2]
#any element.
编辑
根据OP的要求,我认为所需的查询集为
student_list = User.objects.filter(class_room__user=request.user)
问题是有两个
class\u-room
对象具有相同的user
正在返回两个对象。首先,您需要注意这一点。嗨,zaidfazil,我尝试了您的答案,但它没有解决。它只读取了一个类。其余的类都没有显示。我需要总计您是否有多个教室和同一个用户?您想要所有这些教室中的所有学生的列表?是吗?一个用户有多个教室和e每个教室都有一个标题和多个学生。因此我想显示标题和相应的学生。对于单个班级还是所有班级?所有班级zaidfazil..我想这是不可能的..您的看法如何zaid?