geçerek ModelSerializer'da geçersiz kıl() geçersiz kılma Ekstra bir parametre ile uğraşmak için Django Rest Framework'deki ModelSerializer
diziselleştiricisinin varsayılan .create()
yöntemini doğru bir şekilde ovverride buluyorum.Django dayanak çerçevesi: ek bir parametre
Özgün Django modelimde, extra
parametresini yönetmek için varsayılan .save()
yöntemini geçersiz kıldım. Şimdi .save()
da şu şekilde çağrılabilir: .save(extra = 'foo')
.
O orijinal Django modelinde bir ModelSerializer
eşleme oluşturmak zorunda:
from OriginalModels.models import OriginalModel
from rest_framework import serializers
class OriginalModelSerializer(serializers.ModelSerializer):
# model fields
class Meta:
model = OriginalModel
Ama bu şekilde ben modeli .save()
yönteme extra
param geçemez.
Bu extra
parametresini hesaba katarak (eninde sonunda) OriginalModelSerializer
sınıfımın .create()
yöntemini düzgün bir şekilde nasıl geçersiz kılabilirim?
Sorun, "ekstra" paramın OrginalModel'imin bir alanı olmamasıdır. Bildiğim kadarıyla, "OrginalModel" – floatingpurr
'un herhangi bir düzenli alanına eşlenmezse, bir 'ModelSerializer' alanına bir alan eklemenin bir yolu yoktur. Bunu yapmadan önce 'foo' alanını 'validated_data' dan çıkarmanız gerekir. model kurucuya, o zaman bu cevap çalışmalıdır. –