我要在數據庫中創建一個新的記錄如何自定義字段,我將像下面的模型:在Django的REST框架串行
class FooModel(models.Model)
subject_key= models.CharField(max_length=2)
subject= modeels.CharField(max_length=100)
我想要做的是這樣的:場「subject_key」應該是由客戶端提供,並使用subject_key,服務器將找到值'subject'並將其放入數據庫中。
所以我試着用ModelSerializer創建一個新的記錄。
class FooSerializer(serializers.ModelSerializer):
class Meta:
model = FooModel
def get_subject(self, obj):
if obj.subject == 'SO':
return 'Stack Overflow'
else:
return 'Nothing in here'
和主視圖REST API內部運行的代碼是:
class FooView(APIView):
def post(self, request, *args, **kwargs):
serializer = FooSerializer(data=request.data)
if serializer.is_valid(raise_exception=True)
serializer.save()
foo = serializer.data
我檢查它成功地在數據庫中創建一個新的紀錄,但新的記錄具有NULL與列「主題」
我應該如何動態設置序列化器中的字段值?
你如何從請求用戶獲取主體價值或通過您的要求參數 – Robert
@羅伯特也許我在縮短我的代碼的時候讓你有點困惑。我再次編輯它,當用戶請求POST – Kari
獲得subject_vaule時,您需要將該值賦給subject_key,從request.data中獲得subject_value? – Robert