簡體   English   中英

如何在Django Rest Framework中使用自定義字段進行序列化?

[英]How to serialize in Django Rest Framework with custom fields?

假設我的模型是:

class Contact(models.Model):
    email = models.CharField(max_length=50)

我希望有一個接收多個字段的序列化器,然后將它們組合以創建電子郵件。 例如:

class ContactSerializer(serializers.Serializer):
    first = serializers.CharField()
    second = serializers.CharField()
    third = serializers.CharField()

它將使用電子郵件“ user@example.org”將{“ first”:“ user”,“ second”:“ example”,“ third”:“ org”}轉換為新的Contact對象。

我該怎么辦?

您可以覆蓋序列化程序的create方法:

class ContactSerializer(serializers.Serializer):
    first = serializers.CharField()
    second = serializers.CharField()
    third = serializers.CharField()

    def create(self, validated_data):
        email = '{0}@{1}.{2}'.format(validated_data['first'], validated_data['second'], validated_data['third'])
        instance = Contact.objects.create(email=email)
        return instance  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM