Tôi muốn tuần tự hóa một mô hình, nhưng muốn bao gồm một trường bổ sung yêu cầu thực hiện một số tra cứu cơ sở dữ liệu trên phiên bản mô hình để được tuần tự hóa:
class FooSerializer(serializers.ModelSerializer):
my_field = ... # result of some database queries on the input Foo object
class Meta:
model = Foo
fields = ('id', 'name', 'myfield')
Cách đúng đắn để làm điều này là gì? Tôi thấy rằng bạn có thể chuyển "ngữ cảnh" bổ sung cho bộ nối tiếp, đây có phải là câu trả lời đúng để chuyển vào trường bổ sung trong từ điển ngữ cảnh không? Với cách tiếp cận đó, logic nhận được trường tôi cần sẽ không được bao gồm với định nghĩa serializer, lý tưởng vì mọi trường hợp được tuần tự hóa sẽ cần my_field
. Ở những nơi khác trong tài liệu của DRF serializers nó nói "trường bổ sung có thể tương ứng với bất kỳ tài sản hoặc có thể được gọi vào mô hình". Là các lĩnh vực thêm những gì tôi đang nói về? Tôi có nên định nghĩa một hàm trong Foo
định nghĩa mô hình trả về my_field
giá trị và trong trình tuần tự hóa, tôi kết nối my_field với lệnh có thể gọi đó không? Điều đó giống như thế nào?
Cảm ơn trước, vui lòng làm rõ câu hỏi nếu cần thiết.