views.py
try:
testmodel2 = TestModel_2.objects.get(description='a')
except TestModel_2.DoesNotExist:
testmodel2 = None
models.py
@python_2_unicode_compatible
class TestModel_2(models.Model):
description = models.CharField(max_length=34)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return "TestModel %s" % self.description
问题:
为什么我设置了DoesNotExist
,发生了myapp.models.DoesNotExist: TestModel_2 matching query does not exist.
?
修改
Internal Server Error: /accounts/test2/
Traceback (most recent call last):
File "D:\pythonDev\interpreters\interpreter1\lib\site-packages\django\db\models\fields\related_descriptors.py", line 170, in __get__
rel_obj = getattr(instance, self.cache_name)
AttributeError: 'TestModelLog_2' object has no attribute '_test_foreignkey_2_cache'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\pythonDev\interpreters\interpreter1\lib\site-packages\django\core\handlers\exception.py", line 39, in inner
response = get_response(request)
File "D:\pythonDev\interpreters\interpreter1\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "D:\pythonDev\interpreters\interpreter1\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\pythonDev\project\logintest\renoauth\views.py", line 56, in test2
if testmodel_2_log.test_foreignkey_2 is None:
File "D:\pythonDev\interpreters\interpreter1\lib\site-packages\django\db\models\fields\related_descriptors.py", line 179, in __get__
rel_obj = qs.get()
File "D:\pythonDev\interpreters\interpreter1\lib\site-packages\django\db\models\query.py", line 385, in get
self.model._meta.object_name
renoauth.models.DoesNotExist: TestModel_2 matching query does not exist.
[06/Jan/2018 16:20:24] "POST /accounts/test2/ HTTP/1.1" 500 15678
相关模型
@python_2_unicode_compatible
class TestModelLog_2(models.Model):
description = models.CharField(max_length=34)
test_foreignkey = models.ForeignKey(TestModel_2, related_name='test_foreignkey_1', null=True, blank=True, on_delete=models.DO_NOTHING)
test_foreignkey_2 = models.ForeignKey(TestModel_2, related_name='test_foreignkey_2', null=True, blank=True, on_delete=models.DO_NOTHING)
答案 0 :(得分:1)
query = TestModel_2.objects.filter(description='a')
if not query.exists():
return None
return query