2015-03-09 3 views
0

Я пытаюсь получить поле type от фильтрации по name. Поэтому я пытаюсь сделать что-то вроде: Example.objects.get(type).filter(name_exact="Sheep"), и он должен вернуться Animal Но его не удалось.Получение определенного поля из запроса Django

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) 

ответ

3

Если вы хотите получить тип поля экземпляра:

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 

С другой стороны, если вам нужно сделать что с QuerySet, а не с экземпляром объекта, вы можете использовать values или values_list функций (примеры, извлеченные из документации):

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

Спасибо, что работает! – jtd92

Смежные вопросы