访问django中多对多字段的值

时间:2014-04-14 07:18:34

标签: python django django-models

我有一个多对多字段的模型。此字段指向另一个表的pk。我想拉出将在数据存储模型的“类型”字段上过滤的记录。以下是模型。

class VM(models.Model):
   name = models.CharField(max_length=100,null=True,blank=True)
   power_state = models.CharField(max_length=100,null=True,blank=True)
   memory_size = models.BigIntegerField(null=True,blank=True)
   d_store = models.ManyToManyField(Datastore, null=True,blank=True)


class Datastore(models.Model):
   datacenter = models.ForeignKey(Datacenter,null=True,blank=False)
   name = models.CharField(max_length=100, blank = False)
   type = models.CharField(max_length=50)

我试图查询它:

obj_list = VM.objects.filter(d_store__datastore_id__type='rbd')

但是我收到错误,它无法解析字段'datastore_id'。关于如何改进我的查询的任何想法。

2 个答案:

答案 0 :(得分:2)

正确的变体是:

obj_list = VM.objects.filter(d_store__type='rbd')

答案 1 :(得分:-1)

尝试: obj_list = VM.objects.filter(d_store__type='rbd')