django rest framework queryset nicht um
ich benutze das Modell mit Meta
ordering = ['-published_date']
Nun in Sicht:
class InvoiceViewSet(viewsets.ModelViewSet):
queryset = Invoice.objects.all()
serializer_class = InvoiceSerializer
filter_fields = ('table',)
Und serializer:
class InvoiceSerializer(serializers.ModelSerializer):
items = ItemSerializer(many=True, allow_add_remove=True)
class Meta:
model = Invoice
fields = ('id', 'items', 'table', 'published_date')
Aber diese Bestellung nicht funktioniert, es zeigt mir die Bestellung ASC, und ich brauche DESC Sie nicht auf Ordnung an alle.
Was mache ich falsch?
wenn Ihr Anruf
Ja tut es.. das ist komisch. :/
es muss etwas mit DRF. was macht Ihre Ausgabe Aussehen?
Ich verwendet rest-client, um zu sehen, Ausgang, oder einfach nur, um es ASC. Kann etwas falsch sein mit der Sicht oder serializer? Oder gibt es eine andere Möglichkeit, dies zu tun?
Sie können das überschreiben der
Invoice.objects.all()
von der shell zeigt es DESC bestellen?Ja tut es.. das ist komisch. :/
es muss etwas mit DRF. was macht Ihre Ausgabe Aussehen?
Ich verwendet rest-client, um zu sehen, Ausgang, oder einfach nur, um es ASC. Kann etwas falsch sein mit der Sicht oder serializer? Oder gibt es eine andere Möglichkeit, dies zu tun?
Sie können das überschreiben der
get_queryset()
Methode aber, ich habe dies getan, bevor, wie Sie und seine arbeitete für mich. Somehting else falsch sein muss.InformationsquelleAutor Mirza Delic | 2014-07-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr Modell hat eine Bestellung wirklich werden, spiegelt sich in der Listenansicht standardmäßig. Ich würde vorschlagen, überschreiben
get_queryset()
- und debugging-das Rückgabeergebnis gibt, oder sonst ein explizites hinzufügen der Bestellung an den queryset.Beispiel:
Frage mich, ob es möglich ist, die Sie konfiguriert haben einen filter, der das überschreiben der Bestellung. Wert getestet, was passiert, wenn Sie schalten Sie alle Filter ab. Ich sehe, Sie haben die
filter_fields
- Attribut festgelegt, so vorausgesetzt, Sie habe etwas in deinen Einstellungen...Wenn Sie kommentieren, dass sich nicht, dass die Dinge beheben?
Die easy fix sollte werden die
.order_by
oben aufgeführten, aber im nächsten Schritt - warum nicht mitDjangoFilterBackend
explizit bestellen, anstatt die Standard? Ist dass ein bug, der indjango-filter
oder eine integration inREST framework
?Es funktioniert immer noch nicht, wenn die Verwendung
queryset = Invoice.objects.all().order_by('-published_date')
🙁Okay interessant, unter der Annahme, dass
django-filter
überschreibt die Bestellung dann. Ticket github.com/tomchristie/django-rest-framework/issues/1717InformationsquelleAutor Tom Christie
Lösung ist das überschreiben
filter_queryset
:es sollte jetzt funktionieren auch.
InformationsquelleAutor Mirza Delic
@Mirza Delic Antwort funktioniert aber nicht halten der Bestellung kommen, von der Anfrage.QUERY_PARAMS.
Dies funktioniert für mich und für andere Menschen ich hoffe.
InformationsquelleAutor EdgarT