gpt4 book ai didi

Django - 匹配查询不存在

转载 作者:行者123 更新时间:2023-12-03 10:14:34 25 4
gpt4 key购买 nike

我正在处理一个 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

追溯:

Environment:

Request Method: GET Request URL: http://127.o.o.1:8000/posts/Test/

Django Version: 1.7.1 Python Version: 2.7.6 Installed Applications: ('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') Installed Middleware: ('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')

Traceback: File "/home/tabzz/c-dev/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 111. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/tabzz/c/posts/views.py" in Test 34. 'state': store.state, File "/home/tabzz/c-dev/local/lib/python2.7/site-packages/django/db/models/fields/related.py" in get 572. rel_obj = qs.get() File "/home/tabzz/c-dev/local/lib/python2.7/site-packages/django/db/models/query.py" in get 357. self.model._meta.object_name)

Exception Type: DoesNotExist at /posts/Test/ Exception Value: State matching query does not exist.

最佳答案

看起来您的数据库中有一个没有 state 的 Store 模型。 .当您尝试访问 state 时这里:

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

Django 抛出错误,因为 stateForeignKeyStore当您使用 store.state 访问它时,它必须查找它.如 state为空且您尚未设置 ForeignKey允许 None值与 null=True , Django 将引发 DoesNotExist异常(exception)。

关于Django - 匹配查询不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27218152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com