【问题标题】:Retrieving a specific field from Django query从 Django 查询中检索特定字段
【发布时间】:2015-03-09 21:32:56
【问题描述】:

我正在尝试通过name 过滤来获取type 字段。所以我正在尝试做类似的事情:Example.objects.get(type).filter(name_exact="Sheep") 它应该返回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)

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    如果要获取实例的类型字段:

    t = Example.objects.get(name="Sheep").type
    

    get(name="Sheep") 返回一个示例实例,您可以这样做:

    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
    

    另一方面,如果您需要使用查询集而不是对象实例来执行此操作,则可以使用 valuesvalues_list 函数(示例摘自文档):

    >>> Blog.objects.values('id', 'name')
    [{'id': 1, 'name': 'Beatles Blog'}]
    >>> Entry.objects.values_list('id', 'headline')
    [(1, u'First entry'), ...]
    

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      相关资源
      最近更新 更多