如何从Django Queryset返回元组中的特定信息

时间:2019-04-20 17:00:58

标签: django django-models django-queryset

我有一个带有元组的简单模型,该模型返回如下信息:

class Store(models.Model):
STORE_BRAND = (
    ('nike', 'Nike'),
    ('adidas', 'Adidas'),
    ('puma', 'Puma'),
)
online_store = models.CharField(unique=True, max_length=255, choices=STORE_BRAND)

def __str__(self):
    return self.online_store

我试图返回商店名称,以便可以在上下文处理器中的条件语句中使用它。

store_brand = Store.objects.get(online_store='nike')

工作正常,返回

<Store: nike> 

现在,我正在尝试在条件语句中使用它,并且它始终返回false:

>>> store_brand == 'nike'
False

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您正在使用该对象引用属性。您应该使用正确的属性来引用您要访问的值。

>>> store_brand = Store.objects.get(online_store='nike')

>>> store_brand.online_store == 'nike'  # the attribute online_store
True
>>> store_brand.__str__() == 'nike'  # since you defined __str__ to return the required attribute, you can use this too
True