Il doit y avoir un problème avec super(InviteManager, self).get_query_set()
ici mais je ne sais pas quoi utiliser. Lorsque je regarde à travers le gestionnaire de liens d'une instance d'utilisateur,Gestionnaire personnalisé Django avec RelatedManager
len(Invite.objects.by_email()) == len(user.invite_set.by_email())
Même si l'utilisateur n'a aucune invite. Toutefois, user.invite_set.all() renvoie correctement tous les objets Invite qui sont associés à l'objet User.
class InviteManager(models.Manager):
"""with this we can get the honed querysets like user.invite_set.rejected"""
use_for_related_fields = True
def by_email(self):
return super(InviteManager, self).get_query_set().exclude(email='')
class Invite(models.Model):
"""an invitation from a user to an email address"""
user = models.ForeignKey('auth.User', related_name='invite_set')
email = models.TextField(blank=True)
objects = InviteManager()
'''
u.invite_set.by_email() returns everything that Invite.objects.by_email() does
u.invite_set.all() properly filters Invites and returns only those where user=u
'''
J'ai le même problème ici, avez-vous progressé? – shanyu
En fait, je n'ai pas essayé les solutions ci-dessous. J'ai eu un travail horrible dans ma poche et la date limite nécessitait que je l'utilise. Je devrais aller sur la balle et le comprendre! –
même problème pour moi. De plus, il semble que lors de l'impression de la requête résultant de la requête du gestionnaire, la clause WHERE manque un filtre sur l'ID de l'objet original. – Bobby