Also ein Beispiel:
In meinen "Protokoll"en steht ein "user"
Code: Alles auswählen
class Protokoll(models.Model):
user = models.ForeignKey(Profil, verbose_name='Benutzer', related_name='protokolle', on_delete=models.CASCADE)
..
Dieser user ist ein OneToOne Relation zu "Profil":
Code: Alles auswählen
class Profil(models.Model):
user = models.OneToOneField(User, related_name='profil', on_delete=models.CASCADE )
nachname = models.CharField(max_length=30)
vorname = models.CharField(max_length=30)
klasse = models.CharField(max_length=10)
schule = models.ForeignKey(Schule, related_name='schule1', null= True, blank=True, on_delete = models.SET_NULL)
lerngruppe = models.ForeignKey(Lerngruppe, null= True, blank=True, on_delete = models.SET_NULL, related_name='gruppe')
...
Code: Alles auswählen
protokoll = Protokoll.objects.filter(user__lerngruppe = None)
Code: Alles auswählen
protokoll = protokoll.filter(~Q(user__user__groups__name = 'Lehrer'))
Code: Alles auswählen
protokoll = protokoll.filter(~Q(user__klasse = "lehrer"))
Könnt ihr mir an diesem Beispiel bitte zunächst erklären, was da falsch ist, aber auch wofür (oder wie) ich dieses "related_name" benutze ... und dann habe ich das immer noch nicht verstanden, wo ich diesen doppelten Unterstrich benutze - manchmal scheint ja auch nur einer benötigt zu werden (oder sind das immer Benennungen?).
Bitte für Dummies - an der Dokumentation habe ich mich schon versucht.