У меня есть 3 таблицы (2 таблицы принадлежат 1 таблице с использованием ForeignKey).
Я мог бы создать набор запросов для 3 таблиц.Однако я не могу получить информацию таблицы именования из сериализованных возвращаемых данных, как показано ниже.
Может кто-нибудь сказать мне, как я должен пересмотреть сериализатор?
views.py
class lightData(generics.ListAPIView):
serializer_class = lightSerializer
pagination_class = None
def get_queryset(self):
certificate = self.kwargs['certificate']
return Light.objects.prefetch_related('zone__namingzone')
models.py
class Zone(models.Model):
zone=models.CharField(max_length=20)
conditioned=models.BooleanField(default=True)
def __str__(self):
return self.zone
class Light(models.Model):
zone=models.ForeignKey(Zone, on_delete=models.CASCADE,related_name='lightzone')
lpd=models.IntegerField()
sensor=models.BooleanField(default=True)
class Meta:
unique_together = (('certificate', 'zone'),)
def __str__(self):
return str(self.certificate)+"_"+str(self.zone)
class Naming(models.Model):
zone=models.ForeignKey(Zone, on_delete=models.CASCADE,related_name='namingzone')
naming=models.CharField(max_length=20)
def __str__(self):
return str(self.zone)+"_"+self.naming
serializer.py
from rest_framework import serializers
from .models import Certificate,Zone,Light,OA,Naming
class zoneSerializer(serializers.ModelSerializer):
class Meta:
model=Zone
fields = ('zone','conditioned')
class lightSerializer(serializers.ModelSerializer):
zone = zoneSerializer()
class Meta:
model=Light
fields = ('zone','lpd','sensor')
class namingSerializer(serializers.ModelSerializer):
zone=zoneSerializer()
class Meta:
model=Naming
fields=('zone','naming')