Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:get()返回了多个_Django_Orm_Many To Many - Fatal编程技术网

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?