Django-REST-Serializer: Das Abfrage-Set filtert keine PrimaryKeyRelatedField-Ergebnisse

8

Ich habe also einen Serializer, der so aussieht

%Vor%

und es funktioniert super

%Vor%

erzeugt

%Vor%

aber wenn ich das Abfrage-Set im Serializer zu

ändere %Vor%

Ich bekomme immer noch dasselbe genaue Ergebnis zurück.

%Vor%

Soll das passieren? Benutze ich Abfragesätze falsch? Ich habe [] als ein einfaches Beispiel benutzt, um zu zeigen, dass sich, egal was ich einstelle, nichts ändert.

Bitte jede Einsicht wäre von unschätzbarem Wert

Es sollte beachtet werden, dass Masterlistings eine Primärschlüsselbeziehung haben, die auf Gebäude zeigt. Ein Masterlisting gehört also zu einem Gebäude.

    
Charles Haro 20.04.2016, 21:43
quelle

2 Antworten

6

Wie von @zymud aufgezeigt, wird das Argument queryset in PrimaryKeyRelatedField zum Validieren der Feldeingabe zum Erstellen neuer Einträge verwendet. Eine weitere Lösung zum Herausfiltern von masterlistings_set ist die Verwendung von serializers.SerializerMethodField () wie folgt:

%Vor%     
Amit Jaiswal 25.04.2016, 20:26
quelle
2

queryset im verwandten Feld begrenzt nur zulässige Werte. Mit queryset=[] können Sie also keine neuen Werte zu masterlisting_set hinzufügen oder neue Buildings erstellen.

UPDATE. Wie verwende ich das Abfrage-Set zum Filtern?

Dies ist ein bißchen schwierig - Sie müssen ManyRelatedField und many_init method in Ihrem RelatedField neu schreiben.

%Vor%     
zymud 23.04.2016 14:34
quelle