Bonjour, Je suis tombé sur un certains nombre de problèmes concernant les managers:
0) La documentation fait référence à<https://docs.djangoproject.com/en/dev/topics/db/managers/#custom-managers-and-model-inheritance>«défault_manager», mais je ne trouve aucune trace de cette propriété dans django master, le seul truc qui ressemble c'est «_default_manager» avec un underscore. 0bis) A quoi servent «_default_manager» et «_base_manager» ? 1) à quoi sert «Manager.db<https://github.com/django/django/blob/master/django/db/models/manager.py#L25>» il n'est pas utilisé dans la class Manager donc je me demande bien où il peut bien être utilisé d'autre 2) Concernant le polymorphisme - Est ce que l'un de vous c'est debugger (rapidement) le problème d'héritage de niveau supérieur à un django Django-Polymorphic<https://github.com/chrisglass/django_polymorphic/issues/11> - Il me semblait que Polymorphic faisait ça bien par le passé mais ce n'est plus le cas, je prend aussi les branches/révision de Django Polymorphic qui n'a pas le bug dont je parle dans le point précédent - Question bonus: Est ce que vous connaissez une autre app qui fait ça ? Si je trouve une des réponse à 2) je n'aurais sûrement pas besoin de la réponse à la question qui suit mais malgré tout je la pose car c'est étrange et j'ai envie de comprendre :) J'ai les classes de queryset, manager et modèle suivantes: https://gist.github.com/3826531 D'après le code de manager.py <https://gist.github.com/3826531>, il suffit de surcharger get_query_set du manager correctement ce que je pense que je fais, ceci dit voici ce que j'ai comme résultats: In [14]: PolymorphicQuerySet(Entry) > Out[14]: [<Entry: foo>, <Article: bar>, <Article: bar>, <Article: bar>, > <Article: bar>, <Article: bar>, <Article: bar>] > In [15]: Entry.objects.all() > Out[15]: [] Last but not least: J'ai déjà posé cette question quelque part, voir à plusieurs reprise mais quelle est la raison d'être des classes Manager ? C'est un encombrement quand on veux écrire des méthodes de queryset car on ne fait que passer l'appel de méthode au queyset. Pourquoi ne pas juste avoir un truc du style class Model(): objects = Queryset() authors_asimov = Queryset().filter(author__name='Asimov') et basta. Je dois rater des cas d'utilisation du Manager, est ce que quelqu'un peut éclairer ma lanterne sur ce point aussi ? Est ce que vous avez une astuce pour simplifier l'écriture des managers ? Merci d'avance, Amirouche
_______________________________________________ django mailing list [email protected] http://lists.afpy.org/mailman/listinfo/django
