Google App Engine上的django-nonrel - 使用ListField for ManyToMany的含义

时间:2010-10-06 22:04:10

标签: django google-app-engine many-to-many listfield django-nonrel

我正在开发Google App Engine应用程序,而且我相对较新。

我已经在Django中构建了一个应用程序,并且使用了字段类型为ManyToMany的模型。

我知道django-nonrel不支持Django的多对多字段类型。所以我正在考虑使用ListField。

问题:
- 使用ListField而不是ManyToMany有什么含义?
- 我知道这意味着不能使用Django的JOIN API。但这对我的应用程序意味着什么? - 在多对多领域搜索某些内容时,我是否会遇到问题?

如果这些是编程101个问题,请道歉。我是一名设计师,试图了解发展。

由于

1 个答案:

答案 0 :(得分:1)

你可能知道,你将更加手动地跨越关系。 Django不能像使用ManyToMany那样多,但它应该不是那么大的问题。

根据关系的复杂程度,您可能需要考虑为此目的构建模型。

我从来没有在GAE上使用过这种方法,因为IMO只有当一个对象有很多关系(我会说超过50个)或者你打算做的查找时才会有效。也许是因为他们以相同的频率从关系的任何一端开始,或者能够循环关系以显示它们或沿着这些线的某些东西会很好。

上次我在GAE上做了一些事情时,我使用了ListField(或者当时已知的ListProperty),因为大多数对象只有大约20个相关对象,而查找很少会反过来。

总而言之,它并不是什么大不了的事情,我不记得任何与周围一起工作的痛苦。

希望这很有帮助,尽管它相当“IMO”