2017-01-24 15 views
0

ユーザーのすべてのクラスを選択し、対応するすべてのクラスオブジェクトをロードしようとしています。ここに私のmodel.pyファイルです:オブジェクトの配列を別のモデル呼び出しに渡すdjano

def index(request): 
    #grab all classes for a user 
    users_classes = UserClasses.objects.filter(user=request.user) 
    #pass the array of class objects and get their info 
    classes = Class.objects.select_related(self=users_classes) 

    context_dict = {} 

    return render(request, 'dashboard/index.html', context_dict) 

をどのように私は上記目的を達成することができます

from django.db import models 
from django.contrib.auth.models import User 


class Class(models.Model): 
    name = models.CharField(max_length=150) 
    description = models.TextField() 
    teacher = models.ForeignKey(User) 

class UserClasses(models.Model): 
    class_name = models.ForeignKey(Class) 
    user = models.ForeignKey(User) 

そして、ここでは、私が作っているの呼び出しがありますか?あなたは今

users_classes = UserClasses.objects.filter(user=request.user) 
classes = Class.objects.filter(class_name__in=users_classes) 

classesオブジェクトを行うことができます

+0

http://stackoverflow.com/questions/12281965/django-foreign-key-relation-in-templateこの質問はあなたに役立つと思います –

答えて

0

は、ユーザーが属するすべてのクラスが含まれています。

+0

私はエラーが発生しました: 'class_name'キーワードをフィールドに解決できません。選択肢は、description、id、teacher、teacher_id、userclassesです。 –

+0

クラスモデルに 'class_name'の' name'フィールドがありません。 'classes = Class.objects.filter(name__in = users_classes)'のような更新クエリです。 – Darshit

関連する問題