Django-匹配查询不存在

 世界500__强商务英语 发布于 2022-12-08 19:55

我正在处理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它是ForeignKeyon Store,当您使用进行访问时,它必须查找它store.state。如果state是空的,你没有设置你的ForeignKey允许None使用值null=True,Django会提出一个DoesNotExist例外。

1 个回答
  • 看起来您的数据库中有一个Store模型,没有一个state。当您尝试在state此处访问时:

    data.append({
        'id': store.id,
        'name': store.name,
        'address': store.address,
        'state': store.state,
    })
    

    Django会引发错误,因为state它是ForeignKeyon Store,当您使用进行访问时,它必须查找它store.state。如果state是空的,你没有设置你的ForeignKey允许None使用值null=True,Django会提出一个DoesNotExist例外。

    2022-12-11 01:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有