ValarMayar
@ValarMayar

Как исключить custom middleware из django admin?

Есть такой кусок кастомного middleware
class ResetEnergy(MiddlewareMixin):
     def __call__(self, request):
        uid = request.user.id
        # КУСОК  НИЖЕ ОТВЕЧАЕТ ЗА ВОССТАНОВЛЕНИЕ ЭНЕРГИИ (1 мин = 1 ед. энергии)
        currentDate = time.time() # get_unix time
        #currentDate = abs(currentDate)
        get_energy = UserAttribute.objects.filter(user_id=uid)
        for i in get_energy:
            dateDiff = currentDate - i.energy_time.timestamp()
            newEnergy = i.energy
            max_energy = i.energy_max
            energ= i.energy
        if (dateDiff < 6000 and newEnergy < i.energy_max):
            while (dateDiff > 60):
                newEnergy+=1;
                if (newEnergy >=max_energy):
                    break
            dateDiff = dateDiff - 60;
        else:
            newEnergy = max_energy
            if (newEnergy !=energ):
                UserAttribute.objects.filter(user_id=uid).update(energy=newEnergy,energy_time=datetime.datetime.now())

         response = self.get_response(request)

         return response

Его я вызываю в settings.py
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'uinfo.middleware.ResetEnergy',  <-- this is my custom middletwar
    #'uinfo.middleware.MainProcess',
]


И вопрос, как исключить работу этой функции в админке?
За pep8 и двор.. (знаю,знаю, все плохо), но больше всего меня интересует суть вопроса.
Всем спасибо
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
@bacon
Проверять request.path. Но по мне, пересчитывать "энергию" надо не на каждый запрос, а когда идет непосредственное обращение к полю energy, геттеры/сеттеры не зря же придумали
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы