0

I want to see this view with the features list sorted alphabetically.

django-rest view

The model from the view above comes from is AircraftModel.

models.py:

class AircraftModelFeature(models.Model):
    name = models.CharField(max_length=60)

    def __str__(self):
        return self.name

class AircraftModel(models.Model):
    features_list = models.ManyToManyField(AircraftModelFeature)
    # ... other stuff ...

    def __str__(self):
        return self.name

serializers.py

class AircraftModelFeatureSerializer(serializers.ModelSerializer):
    class Meta:
        model = AircraftModelFeature
        fields = "__all__"

class AircraftModelSerializer(serializers.ModelSerializer):
    features_list = AircraftModelFeatureSerializer(many=True, read_only=True)
    # ...other stuff...

    class Meta:
        model = AircraftModel
        fields = ['id', 'features_list',] # there are more fields, omitted

views.py

class AircraftModelFeatureViewSet(viewsets.ReadOnlyModelViewSet):
    permission_classes = [IsAdminOrReadOnly]
    queryset = AircraftModelFeature.objects.all().order_by('name')
    serializer_class = AircraftModelFeatureSerializer
    
class AircraftModelViewSet(viewsets.ReadOnlyModelViewSet):
    permission_classes = [IsAdminOrReadOnly]
    queryset = AircraftModel.objects.all().order_by('name')
    serializer_class = AircraftModelSerializer

So, how can I make that list sorted?

1 Answers1

0

Digging into Django docs, I've found the solution: modifying the Model class that's being used by the Admin Django app. The file i had to edit was admin.py.

admin.py before:

from django.contrib import admin
from pubapi.models import AircraftModelOptional

admin.site.register(AircraftModelOptional)

admin.py after:

from django.contrib import admin
from pubapi.models import AircraftModelOptional

class AircraftModelOptionalAdmin(admin.ModelAdmin):
    ordering = ['name']

admin.site.register(AircraftModelOptional, AircraftModelOptionalAdmin)

What I obtained:

result

As written here it's possible to edit the Model being used by the Admin Django app.

As written here it's possible to order the list by Model fields.