2012-11-05 65 views
0

免責聲明:我是DRF /基於類的視圖newb。在保存Django REST框架中的模型之前更改POST數據

我有一種情況,我的API的客戶端無法知道資源的ID,但它確實知道該資源(其名稱)的唯一標識符。

當客戶端通過POST發送一個具有外鍵的單獨資源時,這是一個問題。例如...客戶端發送以下數據(信號是FK):

{"signal_name": "signal1", "value": 5} 

但該模型預計:

{"signal": 1, "value": 5} 

self.CONTENT得到我的自定義後的方法,它已經被驗證並且是空的。

那麼,在數據獲得驗證/拒絕之前,我/我該如何交換數據?
我需要自定義驗證方法嗎?

感謝您的任何建議!

+0

您可以編寫一箇中間件類來攔截每個請求/響應並修改該特定值或將其擦除。 – PepperoniPizza

+1

我知道這對手頭的問題沒有多大幫助,但我強烈建議您考慮更新到版本2。 –

回答

0

我試圖搞亂資源上的字段和額外字段屬性,但無法讓它不驗證它是錯誤的。所以我最終只是將'signal_name'字段中的字段添加到模型中,並將其匹配到post方法中的信號id。 (幸運的是,在這種情況下,我們有一個非強制FK信號,所以我可以等待給一個信號值)

我會檢查幾天,看看是否有人知道如何更好地做到這一點。此外,謝謝比薩和湯姆的建議!

相關問題