从 Django 查询中检索特定字段
Retrieving a specific field from Django query
我正在尝试通过 name
过滤获取 type
字段。所以我正在尝试做类似的事情:Example.objects.get(type).filter(name_exact="Sheep")
它应该 return Animal
但它没有成功。
models.py
class Example(models.Model):
type = models.CharField(max_length=50, choices=CATEGORY_TYPE) #i.e Class, Type, Commodity, Market, Breed
name = models.CharField(max_length=50)
def __str__(self):
return u"%s" % (self.name)
如果要获取实例的类型字段:
t = Example.objects.get(name="Sheep").type
get(name="Sheep")
returns 一个示例实例,您可以这样做:
obj = Example.objects.get(name="Sheep")
print obj.type
print obj.name
obj.name = "Whatever" # assign new value to name
obj.save() # save the changes to the db
另一方面,如果您需要使用查询集而不是对象实例来执行此操作,则可以使用 values
或 values_list
函数(从文档中提取的示例):
>>> Blog.objects.values('id', 'name')
[{'id': 1, 'name': 'Beatles Blog'}]
>>> Entry.objects.values_list('id', 'headline')
[(1, u'First entry'), ...]
我正在尝试通过 name
过滤获取 type
字段。所以我正在尝试做类似的事情:Example.objects.get(type).filter(name_exact="Sheep")
它应该 return Animal
但它没有成功。
models.py
class Example(models.Model):
type = models.CharField(max_length=50, choices=CATEGORY_TYPE) #i.e Class, Type, Commodity, Market, Breed
name = models.CharField(max_length=50)
def __str__(self):
return u"%s" % (self.name)
如果要获取实例的类型字段:
t = Example.objects.get(name="Sheep").type
get(name="Sheep")
returns 一个示例实例,您可以这样做:
obj = Example.objects.get(name="Sheep")
print obj.type
print obj.name
obj.name = "Whatever" # assign new value to name
obj.save() # save the changes to the db
另一方面,如果您需要使用查询集而不是对象实例来执行此操作,则可以使用 values
或 values_list
函数(从文档中提取的示例):
>>> Blog.objects.values('id', 'name')
[{'id': 1, 'name': 'Beatles Blog'}]
>>> Entry.objects.values_list('id', 'headline')
[(1, u'First entry'), ...]