Безопасно ли повторно использовать несколько моделей с одним и тем же общим c представлением? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть проект с примерно 60 моделями, поэтому создание уникальных деталей, создание, обновление, удаление APIView для каждой из них было бы большим количеством потраченных впустую ресурсов (по крайней мере, так кажется). Было бы лучше с точки зрения производительности (или безопасно?) Просто создать общее c представление, которое могло бы так циклически переключаться между каждой моделью?

_CLASSES = <Dictionary of my classes>
class GenericModelView(APIView):

    def get(self, request, model_name):  # model_name would be a required part of the URL.
        model_class = _CLASSES[model_name]
        serializer_class = model_class.serializer_class  # I would instantiate a serializer for each model_class
        return Response(serializer_class(model_class.objects.all()).data)

1 Ответ

0 голосов
/ 27 мая 2020

Думаю, с точки зрения безопасности опасений быть не должно. Однако, по моему опыту, такой подход продержится недолго. Вам нужно будет настроить функционал для другой модели в соответствии с требованиями. На этом этапе вам нужно будет создать отдельные представления. Кроме того, может быть сложно читать и понимать журналы, поскольку всегда вызывается одна и та же функция. Итак, моя последняя рекомендация - использовать разные представления. Это не должно занять у вас больше часа. Просто скопируйте и вставьте. Настройте позже в соответствии с вашими потребностями.

...