3

Je travaille sur une application Google App Engine et je suis relativement nouveau dans ce domaine.django-nonrel sur Google App Engine - Conséquences de l'utilisation de ListField pour ManyToMany

J'ai déjà construit une application dans Django et j'ai un modèle utilisant un type de champ ManyToMany.

Je suis conscient que django-nonrel ne supporte pas les types de champs many-to-many de Django. J'envisage donc d'utiliser ListField à la place.

Questions:
- Quelle est l'implication de l'utilisation de ListField au lieu de ManyToMany?
- Je suis conscient que cela signifie que l'API JOIN de Django ne peut pas être utilisée. Mais qu'est-ce que cela signifie pour mon application? - Est-ce que je vais avoir des problèmes quand il s'agit de chercher quelque chose dans un domaine plusieurs-à-plusieurs?

Excuses si ceux-ci sont la programmation 101 questions. Je suis un concepteur qui essaie de faire avancer mon développement.

Merci

Répondre

1

Eh bien comme vous le savez sans doute, vous serez enjambant la relation plus manuellement. Django ne peut pas aider autant que lorsque vous utilisez ManyToMany, mais cela ne devrait pas être un gros problème. En fonction de la complexité de la relation, vous pouvez envisager de créer un modèle uniquement à cette fin.

Je n'ai jamais utilisé cette approche sur GAE, puisque IMO est seulement valide quand un objet a beaucoup de relations (plus de 50 je dirais) ou quand les recherches que vous prévoyez de faire, en bénéficieront. Peut-être parce qu'ils commencent à chaque extrémité de la relation avec une fréquence égale ou il serait bon de pouvoir boucler sur les relations pour les afficher ou quelque chose dans ce sens.

La dernière fois que j'ai créé quelque chose sur GAE, j'ai utilisé ListField (ou ListProperty comme on le connaissait alors) car la plupart des objets ne comportaient qu'une vingtaine d'objets associés et les recherches allaient rarement dans l'autre sens.

Donc, dans l'ensemble, ce n'est pas un gros problème et je ne me souviens pas de toute sorte de douleur à travailler avec/autour.

Espérons que cela a été utile malgré le fait qu'il soit plutôt "IMO"

+0

Merci Mathias. C'est le genre de réponse que je cherchais/j'espérais. Le nombre de relations sera d'environ 20. Fondamentalement, je veux avoir un ensemble de routes, puis relier les bus à ces routes. Donc, si je devais construire un modèle pour cette relation, je suppose que ce serait un modèle contenant un bus et un itinéraire dans chaque rangée? – iali

+0

Oui, ce serait juste 2 ForeignKeyFields. On dirait que le modèle séparé correspond parfaitement à votre cas d'utilisation. –

+0

Merci Mathias. – iali