对象没有属性'存在'

时间:2012-06-19 01:01:33

标签: django

我正在使用Django 1.3并尝试在模型条目上使用.exists()但是得到下面列出的错误。存在()包含在Django 1.2中,所以我应该可以访问它。我使用django.get_version验证了我的版本,没关系。 基于pk查询MyModel仅返回一个条目,但使用.exists()查询会引发错误。我需要进口东西吗?

>>> m = MyModel.objects.get(pk=1)
>>> m
<MyModel: Model field entry 1>
>>> m = MyModel.objects.get(pk=1).exists()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'MyModel' object has no attribute 'exists'

2 个答案:

答案 0 :(得分:10)

exists() is a method of a QuerySet

get()返回单个模型实例,will raise an exception Entry.DoesNotExist if that instance doesn't exist。因此,如果您不确定是否存在try/except的实例,则需要将其包装在id块中。

答案 1 :(得分:0)

我在我的项目中使用Django 1.7,我的代码如下:

try:
    temp_query_set = YourModelName.functionName()
except ObjectDoesNotExists:
    <do something> 

请注意,我的代码(起初)使用if query_set.exists() 当没有返回查询集时它可以正常工作,但是当返回某些内容时引发错误object does not have attribute 'exists'。 所以请尽量避免使用if <something>.exists() CMIIW