Применение 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 к другим частям приложения, но кривая обучения также кажется немного более крутой, чтобы достичь точки, где это действительно работает.