Я пытаюсь узнать отношения в рамках Django rest и работе сериализатора в то время.
У меня есть следующая модель:
from django.db import models
class Point(models.Model):
Latitude = models.FloatField(verbose_name="Latitude",
blank=False)
Longitude = models.FloatField(verbose_name="Longitude",
blank=False)
elevation = models.FloatField(verbose_name='Location Elevation',
blank=False,
default=1)
class Location(models.Model):
location_name = models.TextField(unique=True, blank=False, verbose_name="Location Name")
location_coordinates = models.ForeignKey(Point,
on_delete=models.CASCADE,
verbose_name='Latitude & Longitude')
class Meta:
unique_together = ['location_name', 'location_coordinates']
get_latest_by = 'date_added'
def __str__(self):
return f'{self.location_name},{self.location_coordinates}'
И этот сериализатор :
from rest_framework import serializers
from .models import Location
class LocationSerializer(serializers.ModelSerializer):
location_name = serializers.RelatedField(many=True, read_only=True)
def to_representation(self, instance):
representation = super().to_representation(instance)
print(representation)
return representation
class Meta:
model = Location
fields = ['location_name']
Теперь я пытаюсь получить доступ к сериализованным данным, чтобы я мог запустить свои логи c и вернуть ответ в виде.
Документы платформы вид прыжка в глубокую воду в этом топи c (по крайней мере для меня)
Итак, у меня есть два вопроса:
- Как получить доступ к сериализованным данным в сериализаторе ?
- Где на нем можно запустить свою бизнес-логику c, которая возвращает обработанный файл фолиума HTML Файл, я предпочитаю делать это в сериализаторе, а не в представлении, поэтому он может быть возвращен при почтовый запрос, а не какой-то метод извлечения, что означает создание в сериализаторе нового поля, которое может быть возвращено пользователю.
Редактировать:
Я изменил свой сериализатор так:
class PointSerializer(serializers.ModelSerializer):
class Meta:
model = Point
field = '__all__'
class LocationSerializer(serializers.ModelSerializer):
# mission_file = serializers.PrimaryKeyRelatedField(many=True,read_only=True)
class Meta:
model = Location
fields = ['location_name', 'location_coordinates']
Данные доступа следующие:
* 10 29 *
Как получить доступ к данным по location_coordinates, а не к их идентификатору.