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

Répondre à