Применение DRY-принципов в django: Когда использовать представления на основе классов, когда использовать пользовательские декораторы?

У меня есть приложение, состоящее из представлений, основанных на функциях. По мере роста приложения я понял, что мне необходимо внедрить DRY-принципы, чтобы сохранить его управляемость.

Первое, к чему я хочу это применить, это проверка статуса пользователя, которая включается в каждое представление сегодня:

views.py

def myview(request):
    user_profile = UserAccount.objects.get(user=request.user)
    if user_profile.type != "internal" and user_profile.type != "flex":
        if user_profile.duration < datetime.date.today():
            return redirect('expired')

Если я правильно понимаю, я могу применить DRY здесь, создав пользовательский декоратор или создав представления на основе классов для моего приложения - например, расширив DetailView и создав базовый класс для всех моих представлений вокруг этого.

Есть ли какие-то компромиссы, о которых следует знать при выборе подхода? Я представляю, что представления на основе классов могут быть более масштабируемыми в плане применения DRY к другим частям приложения, но кривая обучения также кажется немного более крутой, чтобы достичь точки, где это действительно работает.

Вернуться на верх