Tôi đang tìm cách để đúng cách ovverride phương thức mặc định .create()
của bộ nối tiếp ModelSerializer
trong Django Rest Framework để xử lý thêm tham số.Khung còn lại Django: ghi đè tạo() trong ModelSerializer chuyển một tham số bổ sung
Trong mô hình Django gốc của tôi, tôi đã ghi đè phương thức mặc định .save()
để quản lý thông số extra
. Bây giờ, .save()
cũng có thể được gọi theo cách này: .save(extra = 'foo')
.
tôi phải tạo ra một ánh xạ ModelSerializer
trên mô hình Django gốc:
from OriginalModels.models import OriginalModel
from rest_framework import serializers
class OriginalModelSerializer(serializers.ModelSerializer):
# model fields
class Meta:
model = OriginalModel
Nhưng theo cách này tôi không thể vượt qua extra
param với mô hình phương pháp .save()
.
Tôi có thể ghi đè đúng cách phương pháp .create()
của lớp học OriginalModelSerializer
để thực hiện (cuối cùng) thông số này extra
vào tài khoản?
Vấn đề là thông số "phụ" không phải là trường của 'OrginalModel' của tôi. Theo tôi biết, không có cách nào để thêm trường vào 'ModelSerializer' nếu nó không ánh xạ tới bất kỳ trường thông thường nào của' OrginalModel' – floatingpurr
Bạn cần bật trường 'foo' từ' validated_data' trước khi chuyển nó với hàm tạo mô hình, thì câu trả lời này sẽ hoạt động. –