@SiTiS

Django rest api, включение своего кода?

Здравствуйте!
Пытаюсь разобраться в DRA, все понятно в пределах стандартного функционала, но не могу осилить один вопрос. Как включить в api свой код? Надо выводить информацию о контейнерах, статус которых проверяется через subprocess или другие команды.

serializers.py:
class ContainerSerializer(serializers.Serializer):
    id = serializers.IntegerField(read_only=True)
    tariff = serializers.PrimaryKeyRelatedField(queryset = Tariffs.objects.all())
    user = serializers.CharField(source='user.username')
    status = serializers.ChoiceField(choices=STATUSES)
    cpu = serializers.CharField(read_only=True)


views.py
@api_view(['GET'])
@permission_classes((IsAdminUser, ))
def Containers_list(request):
    """
    List Containers.
    """
    if request.method == 'GET':
        result = Container.objects.all()
        serializer = ContainerSerializer(result, many=True)
        return Response(serializer.data)


И в этот код надо включить, чтобы "cpu" выводилось через subprocess, или другим кодом (например утилитой psutil).
Еще раз суть вопроса, как в django rest api включить выполнение своего кода и вывод информации не из базы и модели, а из произвольного Python кода?
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 2
@iegor
www.django-rest-framework.org/api-guide/fields/#se... или кастомный филд
Ответ написан
Комментировать
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
class ContainerSerializer(serializers.Serializer):
    ...
    cpu = serializers.serializers.SerializerMethodField()

    def get_cpu(self, obj):
          # какой-то произвольный код, результат которого возвращаем в result
          return result
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы