Bonsoir, J'ai pas encore trouvé la raison d'être des managers, mais j'ai trouvé la source du bug c'était un pyc qui trainait.
A+ Le 3 octobre 2012 14:06, Amirouche Boubekki <[email protected]>a écrit : > 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
