Co zrobić, aby .to_representation()
i zrobić w serializers
?
Jeśli przekazuję dane do serializera, czy dane są najpierw przesyłane jako to_representation()
?
Jaki jest pożytek z tych dwóch?Użycie .to_representation() i .to_internal_value w django-rest-framework?
Odpowiedz
Jeśli chcesz utworzyć niestandardowe pole, musisz podklasować pole, a następnie zastąpić jedną lub obie metody .to_representation()
i .to_internal_value()
. Te dwie metody są używane do konwersji pomiędzy początkowym typem danych i pierwotnym typizowalnym typem danych. Typowymi typami danych pierwotnych będą zazwyczaj cyfry, łańcuchy znaków, znaki logiczne, data/godzina/data/godzina lub Brak. Mogą to być również dowolne listy lub słownika, takie jak obiekt, który zawiera tylko inne prymitywne obiekty. Inne typy mogą być obsługiwane, w zależności od mechanizmu renderowania, którego używasz.
Metoda .to_representation()
jest wywoływana w celu konwertowania początkowego typu danych na pierwotny typizowalny typ danych.
Metoda jest wywoływana w celu odtworzenia pierwotnego typu danych w jej wewnętrznej reprezentacji w pythonie. Ta metoda powinna wywołać błąd serializers.ValidationError, jeśli dane są niepoprawne. Uwaga: klasa WritableField
, która była obecna w wersji 2.x, już nie istnieje. Powinieneś podklasować Field i zastąpić to_internal_value()
, jeśli pole obsługuje wprowadzanie danych.
Ref:
- 1. djangorestframework: Filtrowanie w pokrewnym polu
- 2. Kiedy są tworzone i aktualizowane w serializatorze djangorestframework?
- 3. Błędy serializera djangorestframework: {u'non_field_errors: [Dostarczone dane wejściowe]]}
- 4. DjangoRestFramework - pomiń pola zerowe kiedy szeregowania obiektów
- 5. Can to_representation() w Django Rest Framework dostęp do normalnych pól
- 6. Definicja pamięci i użycie
- 7. Jak serializować do wielu modeli przy użyciu DjangoRestFramework
- 8. Użycie exec i eval w Pythonie
- 9. Dlaczego użycie <% i <% = w widokach?
- 10. Użycie AND i LUB w SQLite
- 11. Użycie def, val i var w scala
- 12. Niespójne użycie kart i spacji w wcięciach
- 13. Python/PySerial i użycie procesora
- 14. Kometa, użycie responseText i pamięci
- 15. Prawidłowe użycie akcji i zdarzeń
- 16. jQuery użycie zawiera i toLowerCase()
- 17. Przestrzenie nazw PHP i "użycie"
- 18. "+ =" operator i int długie użycie
- 19. Użycie twierdzeń zawsze i zawsze
- 20. użycie i wyjaśnienie => składnia
- 21. Użycie przechwytywacza w zasobach $
- 22. Użycie zatrzymania w initWithCoder?
- 23. Użycie ksize w tf.nn.max_pool
- 24. Użycie IExtensibleDataObject w klientach
- 25. Użycie Mysql w dev/prod i H2 w teście
- 26. Użycie argv w C?
- 27. Użycie emptyIterator w java
- 28. użycie `else` w makr
- 29. Ponowne użycie formantów i widgetów Backbone.js
- 30. Reakcja Natywna lokalizacja AsyncStorage i użycie