Django,ManyToMany,检查价值

时间:2016-04-11 13:52:48

标签: python django

我无法理解django中的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"

但我似乎无法使其发挥作用,我做错了什么? 对不起,如果有点不清楚,我真的不知道如何解释我的问题。

1 个答案:

答案 0 :(得分:1)

您正在尝试将对象的内容与对象本身进行比较。

a.the_courses.all()返回一个查询集(如对象列表)。

测试您正在寻找的内容的另一种方法是:

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