DRF, как разобрать данные модели - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть следующая модель и сериализатор:

#models.py

areas = [
    ('210', '210'),
    ('769', '769'),
    ('300', '300')
]


class LocationInfo(models.Model):
    latitude = models.FloatField(name='GDT 1 Latitude',
                                 unique=True, max_length=255, blank=False,
                                 help_text="Enter the location's Latitude, first when extracting from Google Maps.",
                                 default=1)
    longitude = models.FloatField(name='GDT 1 Longitude',
                                  unique=True, max_length=255, blank=False,
                                  help_text="Enter the location's Longitude, second when extracting from Google Maps.",
                                  default=1)
    gdt2_lat = models.FloatField(name='GDT 2 Latitude',
                                 unique=True, max_length=255, blank=False,
                                 help_text="Enter the location's Latitude, first when extracting from Google Maps.",
                                 default=1)
    gdt2_lon = models.FloatField(name='GDT 2 longitude',
                                 unique=True, max_length=255, blank=False,
                                 help_text="Enter the location's Latitude, first when extracting from Google Maps.",
                                 default=1)
    uav_lat = models.FloatField(name='UAV Latitude',
                                unique=True, max_length=255, blank=False,
                                help_text="Enter the location's Latitude, first when extracting from Google Maps.",
                                default=1)
    uav_lon = models.FloatField(name='UAV longitude',
                                unique=True, max_length=255, blank=False,
                                help_text="Enter the location's Latitude, first when extracting from Google Maps.",
                                default=1)

    uav_elevation = models.FloatField(name='UAV Elevation', max_length=100, default=1)

    area = models.CharField(
        max_length=8,
        choices=areas,
    )

    date_added = models.DateTimeField(default=timezone.now)
# serializers.py

from .models import LocationInfo
from rest_framework import serializers


class LocationInfoSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = LocationInfo
        fields = (
            'id', 'GDT 1 Latitude', 'GDT 1 Longitude',
            'GDT 2 Latitude', 'GDT 2 longitude',
            'UAV Latitude', 'UAV longitude', 'UAV Elevation',
            'area', 'date_added')

Я хочу получить только последний созданный объект и проанализировать его как файл JSON, чтобы я мог манипулировать этими данными, а затем вернуть ответ. Я не понимаю, как я могу получить доступ к указанным данным, чтение их в формате JSON позволит мне применить мою функцию logi c к данным.

# views.py

class LocationInfoViewSet(ModelViewSet):
    queryset = LocationInfo.objects.all()
    serializer_class = LocationInfoSerializer

1 Ответ

1 голос
/ 22 февраля 2020

Я не проверял это, но я совершенно уверен, что вы можете изменить свой набор запросов с .all() на .latest('date_added')

следующим образом:

class LatestLocationInfoViewSet(ModelViewSet):
    queryset = LocationInfo.objects.latest('date_added')
    serializer_class = LocationInfoSerializer

вот это документация

...