Django-nonrel в Google App Engine - Последствия использования ListField для ManyToMany

Я работаю над приложением Google App Engine, и я относительно новичок в этом.

Я создал приложение уже в Django и имею модель, использующую тип поля ManyToMany.

Я знаю, что django-нереле не поддерживает много-много полевых типов Django. Поэтому я рассматриваю использование ListField вместо этого.

Вопросы:
- Каково значение использования ListField вместо ManyToMany?
- Я знаю, что это означает, что Django JOIN API нельзя использовать. Но что это значит для моего приложения? - У меня будут проблемы, когда дело доходит до поиска чего-то в поле "многие-ко-многим"?

Извините, если они программируют 101 вопрос. Я разработчик, пытающийся разгадать развитие.

Спасибо

Ответ 1

Как вы, вероятно, знаете, вы будете связывать отношения более вручную. Django не может не так много, как при использовании ManyToMany, но это не должно быть большой проблемой.

В зависимости от сложности отношений вы можете захотеть создать модель именно для этой цели.

Я никогда не использовал этот подход в GAE, так как IMO является его единственным действительным, когда объект имеет много отношений (более 50, я бы сказал), или когда поисковые запросы, которые вы планируете делать, выиграют от этого. Возможно, потому, что они начинаются с обоих концов отношений с равной частотой, или было бы неплохо иметь возможность перебирать отношения, чтобы отображать их или что-то в этих строках.

В прошлый раз, когда я сделал что-то в GAE, я использовал ListField (или ListProperty, как было известно тогда), так как у большинства объектов было только около 20 связанных объектов, а поисковые запросы редко бывают в обратном порядке.

Итак, в целом, это неважно, и я не помню его как любую боль, с которой можно работать/вокруг.

Надеюсь, что это было полезно, несмотря на то что это скорее "ИМО"