J'ai un api de repos django auquel un client android est connecté. L'un des modèles sur le cadre reste django api est appelé Debt
:Retour du jeu de requête de toutes les dettes d'un utilisateur?
class Debt(models.Model):
paying_user = models.ForeignKey(User, related_name="paying_user")
receiving_user = models.ForeignKey(User, related_name="reeceiving_user")
amount = models.FloatField()
currency = models.CharField(max_length=10, default="USD")
description = models.CharField(max_length=100, blank=True)
date_incurred = models.DateTimeField(default=timezone.now)
deadline = models.DateTimeField()
payed = models.BooleanField(default=False)
overdue = models.BooleanField(default=False)
class Meta:
verbose_name = "Debt"
verbose_name_plural = "Debts"
objects = DebtManager()
def save(self, *args, **kwargs):
if self.paying_user == self.receiving_user:
raise ValidationError("Users cannot be in debt with themselves.")
super(Debt, self).save(*args, **kwargs)
Dans le DebtManager
j'ai une fonction nommée all_debt
:
def all_debts(self, user):
''' Returns a queryset of all a user's debts '''
all_debt_queryset = ... # What do I write here?
return all_debt_queryset
Pour récupérer toutes les dettes d'un utilisateur, je besoin d'obtenir tous les objets Debt
où l'attribut paying_user
est égal au paramètre user
(utilisateur actuel) et tous les objets Debt
où l'attribut receiving_user
est égal au paramètre user
.
Comment obtenir un queryset avec toutes les dettes d'un utilisateur?
Je suggère de supprimer la fonction 'all_debts' de DebtManager. Ce n'est pas adapté pour être la fonction d'un manager. Bien qu'il soit mieux adapté pour la fonction du modèle de la dette –