- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个在 Google 的 AppEngine 上运行的 django-nonrel 项目。我想为一个游戏创建一个模型,其中包含所有运动通常共有的细节 - 即游戏时间、状态、位置等。然后我为 GameBasketball、GameBaseball 等建模了特定类,这些类继承自基类。
但是,如果我想在某一天检索类似所有游戏的内容,这会产生问题:
Game.objects.filter(gametime=mydate)
这将返回一个错误:
DatabaseError: Multi-table inheritance is not supported by non-relational DBs.
我知道 AppEngine 不支持 JOIN,因此失败是有道理的。但我不确定如何在非关系环境中正确解决这个问题。我尝试过的一个解决方案是将 Game 变成一个抽象基类,虽然这允许我以一种很好的方式对数据进行建模 - 但它仍然没有解决上面的用例,因为它不可能获取抽象对象基类。
这里唯一的解决方案是将所有可能的运动的所有数据(并且只留下与特定运动无关的字段为空)在游戏模型中,还是有更优雅的方法来解决这个问题?
编辑:我更感兴趣的是了解在任何 noSQL 设置中处理此类问题的正确方法,而不是专门针对 AppEngine。因此,即使您的答案不是特定于 GAE,也请随时回复!
最佳答案
对于将来遇到此问题的任何其他人,以下是我最终解决该问题的方法。请记住,这在某种程度上是特定于 mongo 的解决方案,据我所知,没有简单的方法可以仅使用非相关基类来解决此问题。
对于 Mongo,我可以通过使用嵌入式文档来解决这个问题(其他 noSQL 设置可能具有类似的软模式类型功能),简化代码如下:
class Game(models.Model):
gametime = models.DateTimeField()
# etc
details = EmbeddedModelField() # This is the mongo specific bit.
class GameBasketballDetails(models.Model):
home = models.ForeignKey(Team)
# etc
现在,当我实例化 Game 类时,我在详细信息字段中保存了一个 GameBasketballDetails 对象。所以我现在可以:
games = Game.objects.filter(gametime=mydate)
games[0].details.basketball_specific_method()
这是一个可以接受的解决方案,因为它允许我查询游戏模型,但仍然可以获得我需要的“ child ”特定信息!
关于Django Nonrel - 使用 noSQL 解决多表继承问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11092854/
我正在尝试在 GAE (Google App Engine) 上设置 django-nonrel - 按照此处的步骤操作 http://www.allbuttonspressed.com/projec
我正在尝试在 AppEngine 上为我的网站设置 Django 管理套件,但它无法正常工作。我正在将 django-nonrel 设置与 .我站点的其余部分似乎工作正常,但我需要让管理员正常工作,这
有点奇怪。我已经为我的应用程序创建了一个 django admin super 用户,这只是一个启用了 admin 的新 django nonrel 项目。我尝试在运行开发服务器时访问/admin,但
将 Google App Engine 与 Django-nonrel 一起使用时,有什么方法可以利用 Async Datastore API当我用 Django API 声明我的模型类时? 最佳答案
在我的 django-nonrel 项目中,所有用户名都以“_”(下划线)连接。例如,如果用户名是“guest_test”,那么我想拆分 guest 并单独测试。我正在尝试使用以下代码: Curren
在非关系数据库中基于外键属性进行过滤的最佳做法是什么?我知道缺少 join 支持会使事情变得更加复杂,所以我想知道其他人是如何解决这个问题的。 在我的例子中,我有事件,它们属于站点,属于区域。我想过滤
我正在开发一个在 Google 的 AppEngine 上运行的 django-nonrel 项目。我想为一个游戏创建一个模型,其中包含所有运动通常共有的细节 - 即游戏时间、状态、位置等。然后我为
我正在尝试将 Django nonrel 项目用于谷歌应用引擎。我按照描述设置测试项目 here .我为我的静态文件在名为“static”的项目中添加了一个新文件夹。对于 app.yaml 文件,我添
当我尝试安装 pip install "git+ https://github.com/django-nonrel/mongodb-engine"我遇到了一个错误 ERROR:root:Error w
使用 Google App Engine 2.6.0 和 Python 2.7 运行 Django Nonrel,我在尝试首次加载 localhost 和 localhost/admin 时遇到此异常
我正在尝试使用以下方法开发网络应用程序:- MongoDb 作为数据库- Django 作为网络框架 我遇到了一些问题,这让我怀疑这种方法的质量我的设置是:- MongoDb 安装并正常工作- Dja
我正在使用 django-nonrel 和 django-mongodb 引擎。 在引擎的documentation ,它说它支持 django 的 Meta 选项。 我尝试在这样的模型中使用 uni
在我的 Django-mongodb 模型上,我想要一个对象,它的 listField 包含对其他对象的引用。这是我想要实现的示例: 模型.py class Comment(models.Model)
我一直在绝望地尝试让它发挥作用。 我有一个包含 EmbeddedObjects 的 ListField 的模型,基本上它是拍卖中的一个项目,其中包含一个出价列表。典型的 MongoDB 方法。 我知道
是否可以使用类似于 Django 管理中的内联关系项的东西来表示 ListField 中的嵌入式模型? 例如,我有以下模型: class CartEntry(model.Model): pro
我开始学习如何在 Google App Engine 上使用 Django。 我搜索了一些介绍教程,比如 this one . 但看起来并没有真正更新(2010 年 11 月)。 如果有人能给我一个很
我对 App Engine 开发领域非常陌生,我想从 Django 和 GAE 上的测试项目开始。我做了一些研究,发现在 GAE 上的应用程序中使用 Django 有两种主要方法。 Django-no
如何安装 Django-nonrel (Django 1.5)?是否支持此版本的 django? 这是针对 1.3 的:http://docs.mongodb.org/manual/tutorial/
有人让 Django-SocialAuth 与 Django-nonrel 一起使用吗?他们一起工作吗? 如果你已经做到了,请告诉我。有什么需要注意的问题吗? 最佳答案 确实如此,如果您使用非相关数据
我在本地运行的谷歌应用引擎项目上使用 Django nonrel 项目进行开发。我已经创建了自己的模型,当它们在数据存储区中保存和检索时就没问题了。 我希望使用 django.contrib.auth
我是一名优秀的程序员,十分优秀!