Ich habe natürlich die Dokumente überprüft, aber ich habe mich gefragt, ob jemand den Unterschied in Anwendungsfall und Anwendung zwischen diesen Bereichen genauer erklären könnte. Warum sollte man ein Feld gegenüber dem anderen benutzen? Gibt es einen Unterschied zwischen diesen Feldern für eine OneToOne-Beziehung?Was ist der Unterschied im Anwendungsfall für Django Rest Framework für HyperLinkedRelatedField und HyperLinkedIdentityField?
Antwort
würden Sie ein HyperlinkedIdentityField
verwenden, um das Objekt zu verknüpfen derzeit serialisierten und HyperlinkedRelatedField
ist zum einem serialisierten sind im Zusammenhang mit Objekten zu verknüpfen.
Also für eine Eins-zu-Eins-Beziehung, Fremdschlüsselbeziehung, Viele-zu-Viele-Beziehung und im Grunde alles andere mit Beziehungen (in Django-Modellen) möchten Sie eine HyperlinkedRelatedField
verwenden. Die einzige Zeit, in der HyperlinkedRelatedField
verwendet wird, ist das Feld url
, das Sie in Ihren Serializer aufnehmen können, um auf das aktuelle Objekt zu zeigen.
In Django REST Framework 3.0.0 gibt es only two differences ein zwischen HyperlinkedRelatedField
und HyperlinkedIdentityField
.
- Die
source
wird automatisch auf*
(das aktuelle Objekt) - Es wird auf
read_only=True
, so dass es nicht geändert werden kann
so dass ein mit diesen Eigenschaften HyperlinkedRelatedField
Einstellung ist genau das gleiche wie mit einem HyperlinkedIdentityField
.
In älteren Versionen von Django REST Framework (vor 3.0.0), die HyperlinkedIdentityField
verwendet ein spezielles Feld, um die URL für das aktuelle Objekt für die Lösung. Es akzeptiert eine leicht anderen Parametersatz und war keine Unterklasse von HyperlinkedRelatedField
.
Die offensichtliche Antwort ist, dass HyperLinkedIdentityField
nur auf das aktuelle Objekt zeigen soll, während HyperLinkedRelatedField
auf etwas verweisen soll, auf das das aktuelle Objekt verweist. Ich vermute unter der Haube, dass die beiden sich nur darin unterscheiden, dass das Identitätsfeld weniger Arbeit zu tun hat, um die URL-Routen des verwandten Modells zu finden (weil das verwandte Modell das aktuelle Modell ist), während das verwandte Feld tatsächlich herausfinden muss richtige URLs für ein anderes Modell.
Mit anderen Worten, HyperLinkedIdentityField
ist leichter (effizienter), wird aber nicht für andere Modelle als das aktuelle Modell funktionieren.
- 1. Auswahlmöglichkeiten für Fremdschlüssel im Django-Rest-Framework
- 2. Was ist der Anwendungsfall für ContextCompat.checkSelfPermission?
- 3. Django REST-Framework und generische Beziehungen
- 4. Gültiger Anwendungsfall für django admin?
- 5. Anzeigeoptionen für FK select - Django Rest Framework
- 6. Django Rest Framework - Filterung für Serializer Feld
- 7. django-Rest-Rahmen HyperlinkedIdentityField mit mehreren Lookup-args
- 8. Django Rest Framework für mehrere Bildupload
- 9. django Rest Framework https für absolute URLs?
- 10. Django REST Framework: Unterschied zwischen Views und Viewsets?
- 11. Kann HyperlinkedRelatedField von Django REST Framework nicht auf URL-Muster mit mehreren Kwarts verweisen?
- 12. Was ist der Anwendungsfall für D's Kompilierzeit Auswertung
- 13. Was ist der Anwendungsfall für "break Identifier" in JavaScript?
- 14. Was ist der Anwendungsfall für diesen Modifizierer zsh precommand '-'
- 15. Django REST Framework - Anforderung im Serialisierungstest einstellen?
- 16. Aktualisieren von JSONField im Django-Rest-Framework
- 17. Wie raw_id_fields im Django-Rest-Framework einrichten?
- 18. Verschachtelte URL-Muster im Django-REST-Framework
- 19. Was ist der Anwendungsfall von Entity-Vererbungsstrategien im Hibernate?
- 20. Django Rest Framework Router mit mehreren Viewsets
- 21. Warum fehlt INSTALLED_APPS im django-rest-framework?
- 22. Verwendung von .to_representation() und .to_internal_value im Django-Rest-Framework?
- 23. Django Rest Framework - warum serializer.data ist leer
- 24. Was ist ein guter Anwendungsfall für .NET 4.0 Expression Trees?
- 25. Was ist der Unterschied zwischen einer Sprache und einem Framework?
- 26. Django Rest Framework-Objekt ist nicht iterierbar?
- 27. Ist das Django Rest Framework Thread sicher?
- 28. Django Rest Framework Authentifizierung Fehler
- 29. Django Rest Framework Versionierung
- 30. django rest framework - mit detail_route und detail_list
Für ein 'URL'-Feld, ich glaube, du meinst ein' HyperlinkedIdentityField'? Und in Ihrer Beschreibung der zwei Unterschiede gelten die Aufzählungszeichen für "HyperlinkedIdentityField", richtig? – mcastle