[英]How do I send payload to another app to a specific model in django rest framework
[英]How do I modify a model field and then send it using the Rest Framework in Python/Django?
您好,我需要在其余框架將其發送到客戶端之前修改一些數據。 發送的數據來自模型對象。
這是我的模型的代碼示例。
class UserOptions(models.Model):
options = models.TextField(null=False, null=True)
現在,當客戶端請求特定用戶的選項時,我需要通過將其他2-3個模型中的元素組合添加到大JSON字符串中來修改選項。 我假設如何通過序列化器來實現此目的,但是我不確定如何相應地專門修改請求的字段。
如果您只想返回這些數據 ,則可以使用自定義SerializerMethodField
來完成,該方法將允許您匯總所需的所有數據,然后將其傳遞回API響應。
class UserSerializer(serializers.ModelSerializer):
options = serializers.SerializerMethodField()
def get_options(self, obj):
return {
"something": obj.something,
}
另一個選擇是覆蓋to_native
(DRF 2)/ to_representation
(DRF 3) ,但這全部取決於您需要在何處修改數據以及需要執行多to_representation
。
在這兩種情況下,您都應該注意N + 1個查詢 ,這些查詢不可避免地會涉及跨外鍵處理數據。
如果要自動保存此自定義數據 ,則可以通過覆蓋視圖上的perform_create
和perform_update
鈎子來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.