我正在处理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异常值:状态匹配查询不存在。
rojoca.. 5
看起来您的数据库中有一个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
例外。
看起来您的数据库中有一个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
例外。