2017-08-06 7 views
1

DBからデータを取得する際に問題があります。Django:get()が複数返されました

基本的に1人の教師が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()が複数の

を返された、私は、ユーザーbcoz のget()を取り除いi「はを取得した後私はフィルタを入れてclass_roomのより多くの数()をしている得るQuerySet'object持っていない属性「学生の

すべてのヘルプ感謝:(

+0

問題は、同じ 'user'を持つ2つの' class_room'オブジェクトがあることです。それで 'get()'が2つのオブジェクトを返すのです。まず、それを世話する必要があります。 – zaidfazil

答えて

2

をあなたが同じuser。いずれにして、データベースにモデルclass_roomための複数のオブジェクトを持っているあなたはuniquを強制する必要がありますモデル内のuser属性に連絡してください。

または、要求ごととして、学生は、クエリのような最初のオブジェクトの属性

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. 

EDIT

を得ることができますOPのうち、必要なクエリーセットは、

student_list = User.objects.filter(class_room__user=request.user) 
+0

こんにちは、zaidfazil私はそれを解決していない答えは、私はしようとしました。私は合計が必要です – Akash

+0

あなたは同じユーザーで複数のクラスルームを持っていますか?そして、あなたはそれらのクラスルームのすべての生徒のリストがほしいですか?それは...ですか? – zaidfazil

+0

1人のユーザーには複数のクラスルームがあり、各クラスルームには1つのタイトルと複数のstudents.soがあります。タイトルと対応する生徒を表示します。 – Akash

関連する問題