Я читаю на Django REST Framework, и у меня есть модель, которая сериализована с помощью геттеров с использованием SerializerMethodField().Django REST Serializer Method Writable Field
Однако, когда я отправляю POST на эту конечную точку, я также хочу установить это поле, но это не работает, потому что, как показано выше, вы не можете писать в SerializerMethodField. Есть ли способ в Django REST иметь поле сериализатора, для которого вы определяете пользовательский метод getter, и метод пользовательских меток?
EDIT: Вот источник того, что я пытаюсь сделать. Клиент имеет отношения 1 к 1 с пользователем.
class ClientSerializer(serializers.ModelSerializer):
email = serializers.SerializerMethodField()
def create(self, validated_data):
email = validated_data.get("email", None) # This doesn't work because email isn't passed into validated_data because it's a readonly field
# create the client and associated user here
def get_email(self, obj):
return obj.user.email
class Meta:
model = Client
fields = (
"id",
"email",
)
http://stackoverflow.com/questions/18396547/django-rest-framework-adding-additional-field-to-modelserializer –
Да, это то, о чем я прошу. В нем говорится, что вы не можете действительно принимать данные в serializermethodfield в POST в одном из этих комментариев, но я спрашиваю, есть ли способ сделать это в Django REST, который, возможно, не использует serializermethodfield – Nick
, вы должны опубликовать источник для использования метода сериализатора отдыха django rest. Почему бы просто не использовать нормальное поле сериализатора? Вы не можете использовать сериализатор методов для почтовых запросов, поскольку это поле только для чтения. – Dap