После просмотра индийского разработчика всё стало ясно и просто. Для полей с Foreign Key надо задать атрибут related_name. Например, для Person в year и для Year в decadence
year = models.ForeignKey(Year, on_delete=models.CASCADE, related_name='persons')
decadence = models.ForeignKey(Years, on_delete=models.CASCADE, related_name='release')
Затем в сериализаторе задом наперёд пишем сериализаторы начиная от Person и до Years. И переменные пишет как в related_name у переменных
class PersonsSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = '__all__'
class YearsSerializer(serializers.ModelSerializer):
persons= PersonsSerializer(read_only=True, many=True)
class Meta:
model = Year
fields = '__all__'
class DecadenceSerializers(serializers.ModelSerializer):
release = YearsSerializer(read_only=True, many=True)
class Meta:
model = Years
fields = '__all__'
А во view обращаемся к Years. И как я понял сериализатор сам начнёт присоединять по вложеным сеариализаторам
class PersonsViewSet(viewsets.ModelViewSet):
queryset = Years.objects.all()
serializer_class = DecadenceSerializers
http_method_names = ['get']
Конечно он не выводил значения как ключ (а может так и нельзя), но на fronte уже будет проще. Надеюсь кому-нибудь поможет