我无法从数据库中获取数据。
基本上,一位教师可以创建更多的class_room
个,每个class_room包含title
,而且students
的数量更多。
models.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)
views.py
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用户有更多的class_room
,所以我把 filter()之后我得到'QuerySet '对象没有属性'学生'
任何帮助表示赞赏:(
答案 0 :(得分:2)
数据库中有多个模型class_room
的对象,具有相同的user
。您需要强制模型中user
属性的唯一性。
或者,您可以在查询中获取第一个对象的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)