'da bir çok çocuk nesnesinin ebeveynleri paylaşıp paylaşmadığını kontrol edin Django'da bu basit modelleri kullanıyorum. İki hesap acc1
ve acc2
göz önüne alındığında, her ikisi de aynı ekipte yer alıp almadıklarını anlamanın en iyi yolu nedir? Bunu olabildiğince kısa tutmaya çalışıyorum (çünkü bu bir lambda, adlandırılmış değişken değil).Django
class Team(models.Model):
members = models.ManyToManyField(Account, through='Participation')
class Participation(models.Model):
team = models.ForeignKey(Team, on_delete=models.CASCADE)
account = models.ForeignKey(Account, on_delete=models.CASCADE)
Şimdiye kadar bende ne:
def are_in_same_team(acc_pk1, acc_pk2):
teams = Team.objects.filter(participation__account__id__in=[acc_pk1, acc_pk2])
return (acc_pk1 == acc_pk2 and len(teams) == 1) or (len(teams) == 2 and teams[0] == teams[1])
'dönüş acc1.team deneyin == acc2.team' – xbello
Bir hesapta çok sayıda takım olabilir, bunun yerine nesnenin bir "team_set" öğesi vardır. Önerdiğin şey yapılamaz. – Crossfire