Как я могу сортировать результаты работы Django Rest Framework?
Я пытался сделать это с помощью dynamic-rest и не смог заставить его работать, теперь я пытаюсь использовать встроенный метод упорядочивания в django rest-framework, но все еще не могу заставить его работать.
У меня есть ощущение, что это метод, который я использую для получения этих результатов из базы данных, но я не знаю другого способа, так что если кто-нибудь знает, как заставить это работать, любым способом, пожалуйста, дайте мне знать, спасибо!
models.py
class Notifications(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
date = models.DateTimeField('date transacted')
read = models.BooleanField(default=False)
message = models.CharField(max_length=300)
views.py
class getnotifications(viewsets.ModelViewSet):
# Database model
queryset = User.objects.all()
# Serializer - this performs the actions on the queried database entry
serializer_class = NotificationsSerializer
# What field in database model will be used to search
lookup_field = 'username'
filter_backends = [filters.OrderingFilter]
ordering_fields = ['notifications']
ordering = ['notifications']
Я пробовал устанавливать поля заказа/заказа в notifications_set.pk, это тоже не работает.
serializers.py
class NotificationsSerializer(serializers.ModelSerializer):
notifications_set = ListNotificationsSerializer(many=True)
class Meta:
model = User
fields = ['notifications_set']
class ListNotificationsSerializer(serializers.ModelSerializer):
class Meta:
model=Notifications
name='notifications_set'
fields=['pk','date','read','message']
Это не работает при заданном по умолчанию упорядочивании (с флагом упорядочивания в представлении), или с полем ?ordering= в GET-запросе
вы пытаетесь заказать по этому полю уведомления, это поле не существует в вашей модели полей, вы должны использовать одно уже существующее
и вы можете заказать также, используя ORM, вот так:
User.objects.all().order_by('field_name')