Django从单个对象中过滤ManyToMany关系

时间:2013-08-26 10:38:12

标签: python django many-to-many relationship

我在Django中有一个对象,其中一个属性是ManyToMany关系。 好的,现在我有了这个对象,想知道是否有数据相关,我该怎么做?

以下是代码:

u = request.user
ide = request.POST['id']
defob = DefObjc.objects.get(id=ide)
if defob.filter(student_def=u).exists():
  #do things

这是对象类:

class DefObjc(models.Model):
  name = models.CharField(max_length=100, blank=True, null=True)
  date = models.DateTimeField(blank=True, null=True)
  student_def = models.ManyToManyField(User, related_name='DefObjc_relation', blank=True, null=True)

我该怎么做?

1 个答案:

答案 0 :(得分:1)

get()的结果是模型实例,而不是QuerySet,因此您无法对其进行过滤。代替:

if defob.student_def.filter(id=u.id).exists():
    # do things