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

Répondre à