Sandy
Sandy

Reputation: 261

Django: Apply order by on serialized data

I have 3 serializers:

class abcSerializer(serializers.ModelSerializer):
    created=Field(source='time')
    result = Field(source='result')

    class Meta:
        model = abc
        fields = ('created','result')
        order_by = ['-created']

class defSerializer(serializers.ModelSerializer):
    created=Field(source='time')
    result = Field(source='result')
    class Meta:
        model = def
        fields =('created','result')
        order_by = ['-created']



class mainSerializer(serializers.ModelSerializer):
    obj1 = abcSerializer()
    obj2 = defSerializer()

    class Meta:
        model = main

        fields = ('obj1','obj2')

In views.py:

data =  main.objects.filter(id=111)
serializer = mainSerializer(data)
return Response(record)

In UI I am displaying the serialized data as like below:

        created                result
abc     1-9-2016 9:30:00        pass

def     2-9-2016 10:34:00       fail

I am getting the serialized data as below:

data = [{'created':'1-09-2106','result':'pass'},{'created':'2-09-2106','result':'fail'}]

I want to sort the data as per created field based on latest date.

        created                result
def     2-9-2016 9:30:00        fail
abc     1-9-2016 10:34:00       pass

Couldn't figure it out on how to sort on created on created field Any help will be appreciated!!

Upvotes: 2

Views: 9117

Answers (1)

Satoe Sakuma
Satoe Sakuma

Reputation: 103

I think you want the order in your model instead of the serializer.

class abcModel(models.Model):
    created = models.DateTimeField(...)
    result = ...

    class Meta:
        ordering = ['-created']

Upvotes: 4

Related Questions