Django REST Framework: adding additional field to ModelSerializer

前端 未结 8 1974
遇见更好的自我
遇见更好的自我 2020-11-28 01:33

I want to serialize a model, but want to include an additional field that requires doing some database lookups on the model instance to be serialized:

class          


        
8条回答
  •  再見小時候
    2020-11-28 02:05

    This worked for me. If we want to just add an additional field in ModelSerializer, we can do it like below, and also the field can be assigned some val after some calculations of lookup. Or in some cases, if we want to send the parameters in API response.

    In model.py

    class Foo(models.Model):
        """Model Foo"""
        name = models.CharField(max_length=30, help_text="Customer Name")
    

    In serializer.py

    class FooSerializer(serializers.ModelSerializer):
        retrieved_time = serializers.SerializerMethodField()
        
        @classmethod
        def get_retrieved_time(self, object):
            """getter method to add field retrieved_time"""
            return None
    
      class Meta:
            model = Foo
            fields = ('id', 'name', 'retrieved_time ')
    

    Hope this could help someone.

提交回复
热议问题