我正在处理Django项目,但出现此错误,“状态匹配查询不存在”。为什么会这样呢?状态在模型存储区中,您能为我解释此错误以及如何解决吗?
谢谢。观看次数:
def Test(request):
stores = Store.objects.all()
data = []
for store in stores:
data.append({
'id': store.id,
'name': store.name,
'address': store.address,
'state': store.state,
})
return HttpResponse(json.dumps(data), 'application/json')
楷模:
class State(models.Model):
name = models.CharField(max_length=255)
shortname = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class City(models.Model):
name = models.CharField(max_length=255)
state = models.ForeignKey(State)
def __unicode__(self):
return self.name
class Store(models.Model):
name = models.CharField(max_length=255, null=True, blank=True)
address = models.CharField(max_length=255, blank=True, null=True)
lon = models.FloatField(blank=True, null=True)
lat = models.FloatField(blank=True, null=True)
state = models.ForeignKey(State)
city = models.ForeignKey(City)
def __unicode__(self):
return self.name
追溯:
环境:
请求方法:GET请求网址:http://127.oo1:8000 / posts / Test /
Django版本:1.7.1 Python版本:2.7.6已安装的应用程序:('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django .contrib.messages','django.contrib.staticfiles','clients','cobrands','core','posts','bootstrapform','rest_framework')已安装的中间件:('django.contrib.sessions.middleware .SessionMiddleware”,“ django.middleware.common.CommonMiddleware”,“ django.middleware.csrf.CsrfViewMiddleware”,“ django.contrib.auth.middleware.AuthenticationMiddleware”,“ django.contrib.auth.middleware.SessionAuthenticationMiddleware”,“ django .contrib.messages.middleware.MessageMiddleware”,“ django.middleware.clickjacking”。XFrameOptionsMiddleware')
追溯:get_response 111中的文件“ /home/tabzz/c-dev/local/lib/python2.7/site-packages/django/core/handlers/base.py”。response = wrapd_callback(request,* callback_args,** callback_kwargs)在测试34中的文件“ /home/tabzz/c/posts/views.py”。“状态”:store.state,文件“ /home/tabzz/c-dev/local/lib/python2.7/site-包/ Django的/ DB /模型/场/ related.py “中获取572 rel_obj = qs.get()文件” /home/tabzz/c-dev/local/lib/python2.7/site-packages/django/ db / models / query.py”(获得357。self.model._meta.object_name)
异常类型:/ posts / Test /处的DidsNotExist异常值:状态匹配查询不存在。
看起来您的数据库中有一个Store模型,没有一个state
。当您尝试在state
此处访问时:
data.append({
'id': store.id,
'name': store.name,
'address': store.address,
'state': store.state,
})
Django会引发错误,因为state
它是ForeignKey
on Store
,当您使用进行访问时,它必须查找它store.state
。如果state
是空的,你没有设置你的ForeignKey
允许None
使用值null=True
,Django会提出一个DoesNotExist
例外。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句