我想創建一個API,允許通過POST請求發送JSON OneToOne關係。然後 的JSON應該得到轉嫁到串行這需要創建一個新的對象,並與現有的數據來填充它的照顧。Django的REST框架 - 通過JSON
它適用於'簡單'的情況,比如像用戶名和類似的基本字符輸入,但我在創建OneToOne關係時遇到了嚴重的困難。這裏是示例代碼。
函數employee_list
在views.py
- data['account']
是一個有效的用戶名,User
實例被成功選中!
data = JSONParser().parse(request)
user_object = User.objects.get(username=data['account'])
data['account'] = user_object # this is now a valid User object
serializer = EmployeeSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
模型
class Employee(models.Model)
id = models.AutoField(primary_key=True)
name = models.CharField(...)
surname = models.CharField...
account = models.OneToOneField(User)
role = ...
salary = ...
picture = ...
和串行
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = Employee
fields = (...) # all fields of the `Employee` model
到目前爲止好,但是,從來沒有串行驗證!當我刪除需要一個OneToOne關係,它的工作原理..
我怎樣才能創建一個工作OneToOne關係到用戶對象的新Employee對象?
在此先感謝。
什麼是驗證錯誤?你可以在裏面通過raise_exception:is_valid(raise_exception = TRUE) – arjun27
謝謝你的提示,甚至不知道這是可能的。它給了我確切的錯誤,因爲這個,我能夠獨自解決它。非常感謝! – fweidemann14