2

ich ein Personalmodell haben, das zu vielen anderen Gruppen zugeordnet werden können ModellAttribute: ‚ManyToManyDescriptor‘ Objekt hat kein Attribut ‚alle‘ - django

ich eine Antwort von dem, was Gruppen zu bekommen versucht Aufruf geht diese Mitarbeiter gehören zu aber ich bekomme immer wieder Fehler.

Kann mir bitte jemand eine Hand geben? User-Modell

class Staff(Model): 
    groups = ManyToManyField(Group, 
          related_name="%(class)ss", 
          related_query_name="%(class)s", 
          blank=True) 

class Group(Model): 
    creator = ForeignKey(Employer, 
         on_delete=CASCADE, 
         related_name="%(class)ss", 
         related_query_name="%(class)s") 
    group_name = CharField(max_length=256, unique=True) 
    created_at = DateTimeField(auto_now_add=True) 

Ich habe ein paar Möglichkeiten ausprobiert wie

staff = Staff.objects.filter(pk=1) groups = staff.group.all() oder groups = staff.group_set.all() oder groups = staff.group.filter()

und einige andere Möglichkeiten, dass ich mich nicht erinnern kann, aber ich erhalte immer Fehler.

Dank im Voraus

+1

Es ist Gruppen. Also make groups = staff.groups.all() – sebb

+0

@sebb Ich würde Fehler bekommen wie 'AttributeError: 'QuerySet' Objekt hat kein Attribut 'groups' – Dora

Antwort

4

Django Filter() gibt einen QuerySet Objekt, das ein Behälter, der Ergebnisse ist. Daher müssen Sie ein bestimmtes Ergebnisobjekt auswählen, bevor Sie versuchen, auf die Felder zuzugreifen.

results = Staff.objects.filter(pk=1) 
for staff in results: 
    print staff.groups.all() 
Verwandte Themen