Saya ingin membuat serial suatu model, tetapi ingin memasukkan bidang tambahan yang mengharuskan dilakukannya beberapa pencarian basis data pada contoh model yang akan diserialisasi:
class FooSerializer(serializers.ModelSerializer):
my_field = ... # result of some database queries on the input Foo object
class Meta:
model = Foo
fields = ('id', 'name', 'myfield')
Apa cara yang tepat untuk melakukan ini? Saya melihat bahwa Anda dapat meneruskan "konteks" ekstra ke serializer, apakah jawaban yang tepat untuk diteruskan di bidang tambahan dalam kamus konteks? Dengan pendekatan itu, logika mendapatkan bidang yang saya butuhkan tidak akan mandiri dengan definisi serializer, yang ideal karena setiap instance serial akan perlu my_field
. Di tempat lain dalam dokumentasi serialisator DRF dikatakan "bidang tambahan dapat sesuai dengan properti apa pun atau dapat dipanggil pada model". Apakah bidang tambahan yang saya bicarakan? Haruskah saya mendefinisikan fungsi dalam Foo
definisi model yang mengembalikan my_field
nilai, dan dalam serializer saya menghubungkan my_field ke callable itu? Seperti apa itu?
Terima kasih sebelumnya, senang untuk menjelaskan pertanyaan jika perlu.