Điều gì làm .to_representation()
và .to_internal_value
làm trong serializers
?
Nếu tôi chuyển dữ liệu vào bộ nối tiếp, dữ liệu có được ném to_representation()
trước không?
Việc sử dụng hai yếu tố này là gì?Cách sử dụng .to_representation() và .to_internal_value trong django-rest-framework?
Trả lời
Nếu bạn muốn tạo trường tùy chỉnh, bạn cần phải phân lớp trường và sau đó ghi đè một hoặc cả hai phương thức .to_representation()
và .to_internal_value()
. Hai phương thức này được sử dụng để chuyển đổi giữa kiểu dữ liệu ban đầu và kiểu dữ liệu nguyên thủy, có thể tuần tự hóa. Các kiểu dữ liệu nguyên thủy thường sẽ là bất kỳ số, chuỗi, boolean, ngày/giờ/datetime hoặc Không. Chúng cũng có thể là bất kỳ danh sách hoặc từ điển nào giống như đối tượng chỉ chứa các đối tượng nguyên thủy khác. Các loại khác có thể được hỗ trợ, tùy thuộc vào trình kết xuất mà bạn đang sử dụng.
Phương thức .to_representation()
được gọi để chuyển đổi kiểu dữ liệu ban đầu thành kiểu dữ liệu nguyên thủy, có thể tuần tự hóa.
Phương thức to_internal_value()
được gọi để khôi phục kiểu dữ liệu nguyên thủy vào biểu diễn python nội bộ của nó. Phương thức này sẽ tăng một serializers.ValidationError nếu dữ liệu không hợp lệ.
Lưu ý rằng lớp WritableField
đã có trong phiên bản 2.x không còn tồn tại. Bạn nên phân lớp Trường và ghi đè to_internal_value()
nếu trường hỗ trợ nhập dữ liệu.
Ref:
- 1. tải hình ảnh lên hình ảnh với djangorestframework bằng cách sử dụng json và kiểm tra điều này với CURL
- 2. Có thể to_representation() trong Django Rest khung truy cập vào các lĩnh vực bình thường
- 3. Cách sử dụng VÀ trong Ruby Regex
- 4. Lỗi trình chỉnh sửa djangorestframework: {u'non_field_errors ': [u'Không có đầu vào được cung cấp']}
- 5. DjangoRestFramework - Bỏ qua các lĩnh vực null khi serializing đối tượng
- 6. Hibernate: cách sử dụng CONCAT và GROUP_CONCAT
- 7. Cách sử dụng jQuery chứa và toLowerCase()
- 8. Cách thêm NSDebug.h và sử dụng NSZombie trong SDK iPhone
- 9. Cách sử dụng "MyBase" và "MyClass" trong VB.NET
- 10. Cách tạo và sử dụng mảng đa chiều trong Scala?
- 11. Khi nào và cách sử dụng hằng số trong PHP?
- 12. Cách sử dụng enums trong tín hiệu và khe Qt
- 13. Cách sử dụng subscript và superscript trong Swift
- 14. Cách sử dụng vàWhere và orWhere trong Doctrine?
- 15. Cách sử dụng getters và setters trong Javascript
- 16. Cách gán và sử dụng tiêu đề cột trong Spark?
- 17. Ý nghĩa và cách sử dụng "_embedded" trong HATEOAS
- 18. Cách sử dụng TARGETDIR và INSTALLDIR trong WiX là gì?
- 19. Cách hiểu và sử dụng `<fx:root>`, trong JavaFX?
- 20. Cách tạo và sử dụng tài nguyên trong .NET
- 21. Cách sử dụng onConfigurationChanged() và newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE trong android 2.3.3
- 22. Sử dụng đúng cách os.path và os.join
- 23. BitmapCache? Khi nào và cách sử dụng?
- 24. phpmd là gì và cách sử dụng?
- 25. Cách sử dụng Qt WebEngine và QWebChannel?
- 26. Khi nào nên sử dụng các lớp nào trong Qt Quick 2 và cách sử dụng?
- 27. Cách sử dụng tạo và sử dụng UIImageAsset trong iOS 8
- 28. Cách sử dụng NotificationCompat.Builder và startForeground?
- 29. Cách sử dụng hibernate bằng() và hashCode()?
- 30. Cách tránh sử dụng Optional.get và Optional.isPresent