GAE:模型失去了父子关系的踪迹

2024-04-18

我在谷歌应用程序引擎数据存储中的实体关系中遇到了一个非常奇怪的问题。我正在开发一个 Python/GAE Web 应用程序(学习练习),完整的代码可以在来源锻造 http://rhs-galleries.svn.sourceforge.net/viewvc/rhs-galleries/?pathrev=49.

  • I have 2 models:
    • - 搜索词和(间接)照片列表
    • - 有关照片的信息,以及它所属的图库(collection_index='photos')
  • 我有一个创建画廊并向其中添加照片的摄取过程
  • 我有一个页面,它从数据存储区读取图库并使用该图库实例的“.photos”属性来获取其中的照片列表

现在这就是奇怪的部分出现的地方......如果我更改文件(我测试过的任何文件),或者甚至只是更新文件的时间戳(即,因此它会重新加载)...画廊的“.photos”属性开始失败。例如,如果我尝试加载“花”画廊页面 http://localhost:8080/gallery/flowers:

Traceback (most recent call last):
  File "C:\Applications\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 700, in __call__ handler.get(*groups)
  File "C:\Eclipse-Workspace\galleries-google\app\views\gallery.py", line 33, in get for photo in gallery.photos:
AttributeError: 'Gallery' object has no attribute 'photos'

我可以重新启动 web 应用程序,我可以重新启动应用程序启动器,然后启动 web 应用程序。不管怎样,问题仍然存在。看来我需要强制数据存储以某种方式“记住”连接

# Reading the list of photos for a given gallery via the Photo entity
# This seems to force the datastore to "remember" the connection between the two
from google.appengine.ext import db
import pprint
from app.models.gallery import Gallery
from app.models.photo import Photo

gallery = Gallery.get_by_key_name('candy')
print("Gallery: " + gallery.search_term)
q = db.GqlQuery("SELECT * FROM Photo WHERE gallery = :1", gallery )
photos = q.fetch(20)

for photo in photos :
    print("\tphoto: " + photo.getUrl('original'))

或者从头开始重新摄取所有数据(尽管我想即使只是重新摄取单个画廊也可以)。

有谁对可能造成这种情况的原因有任何想法吗?任何帮助,将不胜感激。

Notes:

  • 这是在开发环境中。我还没有达到值得在真实服务器上将其注册为网络应用程序的程度。
  • 奇怪的是,我最近问了一个关于如何如何列出父节点中的子节点 https://stackoverflow.com/questions/6232092/gae-models-how-to-list-child-nodes-in-parent在 GAE 中...因为我真的希望信息存在于父模型定义中。讽刺的是,(显然)父母缺乏这些信息导致了现在的问题

因此,经过多次挖掘后,我相信我找到了答案......

  • 当文件被修改(时间戳更改)时,应用程序引擎将使已编译/缓存的文件失效
  • 当。。。的时候Photo类被定义后,它会向类添加一个属性Gallery based on the collection of ids it has for them
  • 当它需要时Gallery类,应用程序引擎会重新加载它的代码...因为它的定义因文件被修改而失效
  • 因为它不知道它需要Photo类,它不会加载该文件,因此该文件的“新实例”Gallery类没有应为其集合创建的属性

我的第一个解决方案是添加对Photo文件在Gallery file.


from app.models.photo import Photo
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GAE:模型失去了父子关系的踪迹 的相关文章

  • uWSGI 说:“ImportError:没有名为 wsgi 的模块”

    当uWSGI启动时 它会写入 ImportError No module named wsgi 我的 uwsgi xml
  • 如何将 .h 文件中的常量导入到 python 模块中

    将 c 风格 不是 c 只是普通的旧 c h 文件中定义的一堆常量导入到 python 模块中的推荐方法是什么 以便它可以在项目的 python 部分中使用 在项目中 我们使用混合语言 在 Perl 中 我可以通过使用 h2xs 实用程序生
  • Bigtable数据库设计理论

    我非常精通关系数据库设计的理论和实践 我知道什么有效 什么无效 什么是高性能的 什么是可维护的 几乎 当您开始拥有真实数据时 总是有需要调整的地方 看来我找不到关于分布式可扩展数据库的大量知识 例如 Google 的 Bigtable 用于
  • Django ModelForm 不保存数据

    我已经尝试过以下帖子中的解决方案 从 ModelForm 保存数据 https stackoverflow com questions 13046488 saving data from modelform 没起作用 ModelForm数据
  • Pandas如何按列按间隔分割数据框

    我有一个巨大的数据框 其中有一个名为的日期时间类型列dt 数据框排序基于dt已经 我想根据以下内容将数据帧拆分为多个数据帧dt 每个数据帧包含行1 hr range Split dt text 0 20160811 11 05 a 1 20
  • 类型错误:fit_transform() 需要 2 个位置参数,但给出了 3 个

    我有熊猫数据框df 我想对连续和分类特征进行编码df使用不同的编码器 我觉得用起来很舒服make column transformer 但是下面显示的代码失败了LabelEncoder 但可以很好地与OneHotEncoder handle
  • Anaconda-Python RequestsDependencyWarning:urllib3 (1.22) 或 chardet (2.3.0) 与支持的版本不匹配

    我收到一条警告 该警告似乎没有在任何其他在线资源中涵盖 我安装了 Anaconda Python 3 6 创建新的 Conda 环境时收到的警告是 RequestsDependencyWarning urllib3 1 22 or char
  • 从多个 csv 文件中提取行和文件名

    我的文件夹中有多个以日期为文件名的 csv 文件 20080101 csv 到 20111031 csv csv 文件具有共同的标题 csv 文件如下所示 20080101 csv X Y Z 1 1 3 1 2 6 1 3 24 2 1
  • 使用 kdeplot 对数刻度

    我正在尝试使用 Seaborn 的 kdeplot 制作一个漂亮的自由能表面 热图 我非常接近 但无法找到改变颜色条比例的方法 颜色条比例很重要 因为它应该表示地图上不同坐标处的能量差异 我需要知道如何缩放颜色条的值 0 5961573 l
  • 基于多列值的重复键的两个大型 Pandas DataFrame 的条件合并/连接 - Python

    我来自 R 老实说 这是使用 R data tables 在一行中完成的最简单的事情 并且对于大型数据表来说 该操作也相当快 但是我真的很难用Python实现它 前面提到的用例都不适合我的应用程序 当前的主要问题是 Python 解决方案中
  • 如何将Python列表分成不等长的子列表?

    我试图将用逗号分隔的元素列表划分为长度不等的块 我该如何划分它 list1 1 2 1 list2 1 1 1 1 1 1 1 2 1 1 1 3 1 1 1 4 list1 包含的元素是我希望将 list2 分成的块的大小 你可以结合以下
  • 如何通过 Python 的请求使用 FTP

    是否可以使用requests与 FTP 站点交互的模块 requests获取 HTTP 页面非常方便 但当我尝试使用 FTP 站点时 我似乎遇到架构错误 我有什么遗漏的吗requests允许我执行 FTP 请求 还是不支持 对于像我一样得到
  • 了解 keras 中不同序列的 lstm 输入形状

    我对 keras 和 python 都很陌生 我有一个具有不同序列长度的时间序列数据集 例如第一个序列是 484000x128 第二个序列是 563110x128 等 我已将序列放入 3D 数组中 我的问题是如何定义输入形状 因为我很困惑
  • Pyspark 可为空的 uuid 类型 uuid 但表达式的类型为字符变化

    给定一个表格设计不可为 null 的 uuid列和a可为空的 uuid列 如何使用 python 3 7 9 与 Pyspark 2 4 3 数据帧和 postgresql 42 2 18 jar 驱动程序进行插入 table df spa
  • Pandas - 使用其他列值作为列名选择列

    我有一个包含一列的数据框 我们称之为 名称 names 具有其他列的名称 我想添加一个新列 该列的每一行都有基于 名称 列中包含的列名称的值 Example 输入数据框 pd DataFrame from dict a 1 2 3 4 b
  • Python setuptools:打包根目录(每个包不需要子目录)

    我需要将一个包写入存储库 但它是一个小型快速包 因此我认为不需要将文件放入子目录中 我只是想要 import mypkg module1 具有目录结构 root folder setup py init py the init for pa
  • ORA-02289: 序列不存在,hibernbate 中出错

    ORA 02289 序列不存在 hibernbate 中出错 在 Oracle 中 您无法自动生成值 您应该创建一个序列 我们称之为 VEHICLE SEQ 然后你应该把这个注释放在你的 id 上 GeneratedValue strate
  • ImageDataGenerator 预测类 - 为什么预测未正确从概率转换为预测类?

    我有一个这样设置的目录 images val class1 class2 test all classes train class1 class2 每个目录中都有一组图像 我想预测测试中的每个图像是否属于 1 类或 2 类 我写这个是为了读
  • 使用 OpenCV 进行车牌识别

    我有一个项目 需要使用 OpenCV 识别汽车的车牌 我想加载数字或字母的图像 让 OpenCV 识别它并将其打印到控制台 有一个函数可以做到这一点吗 如果没有 我该怎么办 Note 我正在研究灰度级 请帮忙 我必须在一周后完成 谢谢你的快
  • 如何阻止诱变剂自动更新 ID3 版本?

    当我尝试在 MP3 中嵌入专辑封面时 诱变剂将 ID3 标签更新为版本 2 4 我不希望这样做 因为在 ID3v2 4 中 我的手机 运行 Windows Phone 8 和我的计算机无法识别标签 显然 只需更改mutagen id3 ve

随机推荐

  • 如何在调用子方法时强制调用父方法?

    我想要的是强制当子类从父类继承并且它重写父类方法而不显式调用它时 会引发错误 在错误类的初始化或调用该方法时可能会引发错误 目标是确保 Mother 类的用户执行 mother 方法中存在的一些操作 Example class Mother
  • React 无状态组件 this.refs..value?

    我不知道我这样做是否正确 如果我想从输入中获取值 我使用 this refs whatever value trim 但如果该输入是无状态函数组件 我如何检索 onSubmit 的值 经过研究 我知道现在这是不正确的 但是您应该如何从这些输
  • 未找到源,但无法搜索部分或全部事件日志。无法访问的日志:安全性[重复]

    这个问题在这里已经有答案了 我收到错误 未找到源 但无法获取部分或全部事件日志 搜索过 无法访问的日志 安全 当我运行下面的代码来捕获 Win 2K12 R2 服务器 IIS 8 5 上的错误时 EventLog elog new Even
  • 在 iOS 中添加/连接两个文本字段到一个标签中

    我有两个文本字段 在一个视图控制器中显示名称和首字母缩写 我想在另一个视图控制器中将两者显示为一个标签 我怎样才能做到这一点 要将数据从一个页面发送到另一页面 请查看所以在这里回答 https stackoverflow com quest
  • 使用 Sql Server 表中的值的 C# 枚举

    目前我有一个 SQL Server 2005 表 看起来有点像 ID name desc 1 ONE Value One 3 THREE Value Three 5 FIVE Value Five 该表对应于 C 中的枚举 如下所示 enu
  • win32com(python)错误

    我正在尝试在记事本中为我正在处理的程序自动执行操作 但我无法弄清楚我收到的错误消息 import os import win32com object win32com client Dispatch Notepad Application
  • 如何在 Javascript 中创建动态文件+下载链接? [复制]

    这个问题在这里已经有答案了 通常 HTML 页面可以包含可从服务器下载的文档 PDF 等 的链接 假设有一个启用 Javascript 的网页 是否可以从用户浏览器中动态创建一个文本文档 例如 并添加一个链接来下载该文档 而无需往返服务器
  • MAMP MySQL 无法连接:设置无效。

    我在 MAMP 灌输中遇到了问题 我没有改变它刚刚发生的任何事情 我完美地启动了 MAMP 它为 MySQL 服务器启动提供了绿灯 我可以使用 mysql 命令从终端连接到它 但是 当我尝试打开 phpMyAdmin 时 出现此错误 错误
  • 如何消除“最后一个语句应该返回一个值”警告?

    Sun Studio 12 1 打印警告 Warning The last statement should return a value 经常用于这样的功能 int f some code that may return if we en
  • HttpPost 适用于 Java 项目,但不适用于 Android 项目

    我为我的 Android 设备编写了一些代码 用于通过 HTTPS 登录网站并从结果页面中解析一些数据 一个HttpGet首先获取登录所需的一些信息 然后HttpPost执行实际的登录过程 下面的代码在 Eclipse 中的 Java 项目
  • 禁用 LINQ to SQL 中的触发器

    我们创建了一个带有触发器的表 每次有 UPDATE INSERT 时都会更新其中的 ModifiedDate 字段 不过 对于我们应用程序中的特定交易 我们希望暂时禁用此触发器 可以直接从 LINQ 执行此操作吗 直接 不调用存储过程 不使
  • 仅获取 git 远程存储库的标签/引用

    是否可以在不下载对象 文件的情况下获取存储库 例如 GitHub 的标签 引用 我的用例是打包某些软件的最新测试版 这些软件具有悠久的历史 因此很难克隆 理想情况下 在确定我希望使用的标签后 我可以 git clone b tag dept
  • 在 Python 中使用 Rasterbar libtorrent 加载 Magnet LINK

    如何通过 rasterbar libtorrent python 绑定加载 Magnet 链接 import libtorrent as lt import time ses lt session params save path home
  • PHP 中的位掩码设置?

    位和位掩码是我一段时间以来一直难以理解的东西 但我想学习如何在 PHP 中使用它们进行设置和类似的操作 我终于找到了一个声称可以做到这一点的课程 据我所知 它似乎有效 但我不确定这是否是最好的方法 我将在下面发布带有示例代码的类文件 以显示
  • Apache Camel/ActiveMQ 优先级路由

    我有两个具有相同消费者的 AMQ 队列 第一个队列 Q1 处理 97 的消息 另一个队列 Q2 仅处理 3 问题是 Q2 中的消息需要在排队后立即处理 所以我的问题是 当第二季度有消息可用时 我需要以某种方式暂停第一条路线以吸引其消费者 a
  • 在 Windows 资源管理器中打开一个文件夹并选择一个文件,仅第二次有效

    使用中描述的代码这个答案 https stackoverflow com a 696144 107625SO 发布的 打开文件夹并选择文件 https stackoverflow com questions 334630 open fold
  • 在perl脚本中调用带有输入参数和输出光标的存储过程

    尝试在 perl 脚本中执行过程 Proceure gt 创建或替换 PROCEDURE Getproc v catg IN CHAR DEFAULT NULL v cursor OUT SYS REFCURSOR 执行程序 my sth
  • 为什么大多数 RNG 中上限都是独有的?

    大多数编程语言都提供 伪 随机数生成器 其中许多都有方便的方法来生成特定范围内的整数 到目前为止 在我见过的所有实现中 范围的下限是包含的 而上限是排除的 这有具体的技术或历史原因吗 我可以想象 在使用索引或长度时它很方便 但我找不到任何有
  • 如何查明当前安装的 webdeploy/msdeploy 版本是什么?

    我正在寻找类似 Powershell 脚本的东西来检查 msdeploy 是否已安装 如果是 是什么版本 我考虑过检查 c Program Files IIS 并检查那里的 MSDeploy 安装 但这总是保证是安装位置吗 我需要它在任何给
  • GAE:模型失去了父子关系的踪迹

    我在谷歌应用程序引擎数据存储中的实体关系中遇到了一个非常奇怪的问题 我正在开发一个 Python GAE Web 应用程序 学习练习 完整的代码可以在来源锻造 http rhs galleries svn sourceforge net v