Bir modeli serileştirmek istiyorum, ancak serileştirilecek model örneğinde bazı veritabanı aramaları yapmayı gerektiren ek bir alan eklemek istiyorum:
class FooSerializer(serializers.ModelSerializer):
my_field = ... # result of some database queries on the input Foo object
class Meta:
model = Foo
fields = ('id', 'name', 'myfield')
Bunu yapmanın doğru yolu nedir? Ben serileştiriciye ekstra "bağlam" geçebilirsiniz görüyorum, bir bağlam sözlüğünde ek alana geçmek için doğru cevap mı? Bu yaklaşımla, ihtiyacım olan alanı elde etme mantığı, serileştirilmiş her örneğin ihtiyaç duyacağı için ideal olan serileştirici tanımı ile kendi kendine yetmez my_field
. DRF serileştiricileri belgelerinde başka yerlerde "fazladan alanlar herhangi bir özelliğe karşılık gelebilir veya modelde çağrılabilir" yazıyor . Fazladan bahsettiğim alanlar mı? Foo
Model tanımında my_field
değer döndüren bir işlev tanımlamalı mıyım ve serileştiricide my_field'ı bu çağrılabilire bağladım mı? Bu neye benziyor?
Şimdiden teşekkürler, gerekirse soruyu açıklığa kavuşturmaktan mutluluk duyarız.