对象没有属性'exists'。

8

我正在使用Django 1.3,并尝试在模型条目上使用.exists(),但是遇到了下面列出的错误。.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'

1
或者尝试使用 MyModel.objects.filter(pk=1).exists() - okm
3个回答

18

1
尝试使用.filter()代替.get(),像这样:
m = MyModel.objects.filter(pk=1).exists()
y = MyModel.objects.filter(pk=2).exists()
print(m)
print(y)

输出必须是布尔值,例如:

False
True

假设m不存在,y存在


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()。如有不妥之处,请指正。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接