如何在App Engine上使用django-nonrel时获取实体的密钥

时间:2011-05-16 20:20:40

标签: django google-app-engine django-models django-nonrel

我在Google App Engine上使用django-nonrel(http://www.allbuttonspressed.com/projects/djangoappengine)。我有我的模型等设置,一切都很好。我有一个问题。我希望能够访问实体的密钥。给定一个名为“Review”的模型,我会Review.objects.get(pk = 1).key()抛出错误(AttributeError)。

有什么方法可以获得给定实体的密钥,以便我可以使用它而不是被迫使用pk / id?我想将密钥用作唯一标识符的唯一标识符。秘密URL(如果有人有更好的建议来实现这一目标,我会全力以赴)。

2 个答案:

答案 0 :(得分:0)

您可以通过调用object.key()。id()来获取id,它返回python内部的唯一键。在模板中,您只需调用object.key.id即可。然后,您可以使用get_by_id来获取对象

答案 1 :(得分:0)

您可以从元数据中获取django-nonrel上的主键:

review._meta.pk

或关键名称: 键= GETATTR(综述,review._meta.pk.column)

显然,'id'字段会根据您在开发服务器还是生产服务器上的不同而变化。这样可行!

参考: http://www.b-list.org/weblog/2007/nov/04/working-models/