Как установить настройки. DEBUG == True только для суперпользователя и False для всех пользователей - PullRequest
0 голосов
/ 05 января 2019

Я использую Django 2.1, и мой проект готов к производству. Есть ли способ, которым я могу установить параметры. Отладка == Истина только для суперпользователя и показать 500 внутренних ошибок сервера по умолчанию для обычных пользователей. Я пытался написать промежуточное программное обеспечение, но, похоже, не работает. Я не хочу использовать часового (как рекомендуется во многих местах). мой middlewares.py:

import sys
from django.views.debug import technical_500_response
from django.conf import settings
from django.contrib.auth import get_user_model

user = get_user_model()  #I am using CustomUser model not Django user model

class UserBasedExceptionMiddleware(object):
def __init__(self, get_response):
    self.get_response = get_response

def __call__(self, request):
    return self.get_response(request)

def process_exception(self, request, exception):
    if request.user.is_superuser:
        return technical_500_response(request, *sys.exc_info())

Я также загрузил свое промежуточное ПО.

MIDDLEWARE = ['myproject.middlewares.UserBasedExceptionMiddleware',]

1 Ответ

0 голосов
/ 05 января 2019

Я нашел способ отладки приложения с помощью сервера разработки без изменения DEBUG. Для этого я создал файл debug_setting.py (где находится мой файл settings.py).

В моем debug_setting.py:

from .settings import *
DEBUG = True

Затем в терминале, используя:

python manage.py runserver --settings=myproject.debug_setting 0.0.0.0:5000

Мы можем увидеть трассировку ошибки нашего приложения без изменения DEBUG = True для нашего производства.

...