gpt4 book ai didi

python - 如何检查给定实体是否存在于数据存储中?

转载 作者:行者123 更新时间:2023-12-01 05:50:19 24 4
gpt4 key购买 nike

我正在 Google App Engine 中编写一个 Django 页面,用户可以在其中创建或编辑对象的实例并保存它。由于创建新对象和编辑现有对象的代码(几乎)相同,因此我使用相同的代码进行编辑和创建。该对象称为组。

在 View 函数的顶部,如果提供了 id,我会加载 Group 实例;如果未提供 id,我会创建一个新实例:

def group_edit(request, group_id=None):

if(group_id is None):
group_inst = Group()
else:
group_inst = db.get(db.Key.from_path('Group', int(group_id)))

if(group_inst is None):
raise Http404()

View 函数的其余部分然后对 group_inst 进行操作,而不知道或关心 group_inst 是新实例还是现有实例。然而,有一个地方我需要知道其中的区别:页面标题。如果用户正在创建一个新组,我想显示“创建组”,否则我想显示“编辑组 - {{ group.name }}”

直观上,如果对象的键为 None,我只会 checkin 模板:

<h1>
{% if group_inst.key %}
Edit Group - {{ group_inst.name }}
{% else %}
Create Group
{% endif %}
</h1>

但是这会引发 NotSavedError。浏览 GAE 文档我没有看到任何有用的东西。如何查看实例是否有对应的datastore记录?

最佳答案

您应该使用has_key()而不仅仅是访问 key :

{% if group_inst.has_key %}

关于python - 如何检查给定实体是否存在于数据存储中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551892/

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