2016-04-11 14 views
0
私は

ジャンゴジャンゴ、多対多、値

ManyToManyフィールドを理解するトラブルを抱えています

をチェックし、私は、このモデル

class Courses_list(models.Model): 
    abbreviation = models.CharField(max_length=100, unique=True) 
    course = models.CharField(max_length=100, unique=True) 

    def __unicode__(self): 
     return self.abbreviation 

class Job_Posting(models.Model): 

    class Meta: 
     verbose_name = u'Job Post' 
     verbose_name_plural = u'Job Posts' 

    job= models.CharField(max_length=100, unique=True) 
    the_courses = models.ManyToManyField(Courses_list, verbose_name="Courses") 

がどのように私はthe_coursesコンテンツをチェックしますか?私が何をしたか

は次のとおりです。

a = Job_Posting.objects.get(pk=1) 
if "MSIT" in a.the_courses.all(): 
    print "Success" 

しかし、私はそれを動作させるように見えることはできません、私は間違って何をしているのですか? 申し訳ありませんが少し不明な場合、私は本当に私の問題を説明する方法を知りません。

+0

'a.the_courses.filter(略称=「MSIT」)' –

答えて

1

オブジェクトの内容をオブジェクト自体と比較しようとしています。

a.the_courses.all()は、(オブジェクトのリストのような)クエリーセットを返します。

あなたが探しているものをテストするための別の方法がある:

if a.the_courses.filter(abbreviation="MSIT").exists(): 
    print "Success" 
+1

は、多対多がちょうどクエリのようなものであることを思い出させてくれてありがとう。 :) –

関連する問題