Джанго: как продлить settings.py? - PullRequest
1 голос
/ 14 марта 2011

Этот код правильный?

from django.conf import settings
settings.TEMPLATE_CONTEXT_PROCESSORS += ['portal.context_processors.login_form_processor']

Я хочу добавить еще одно значение в словарь настроек проекта, только для одного приложения =)

Ответы [ 4 ]

1 голос
/ 14 марта 2011

Вы можете иметь «стандартные настройки» и можете импортировать эти настройки на settings.py вашего проекта, как:

На ваших стандартных настройках:

# settings_standard.py
TEMPLATE_CONTEXT_PROCESSORS = (
    'context_one',
    'context_two'
)

А в настройках вашего проекта:

# project settings.py
import settings_standard.py

TEMPLATE_CONTEXT_PROCESSORS += (
    'context_three',
    'context_four'
)

Внимание для + = на втором TEMPLATE_CONTEXT_PROCESSORS. :)

1 голос
/ 14 марта 2011

Вы должны импортировать локальные настройки модуль

import settings
settings.TEMPLATE_CONTEXT_PROCESSORS += ['portal.context_processors.login_form_processor']
0 голосов
/ 17 января 2019

Вот как я увеличил скорость регулирования django-rest-framework, чтобы у меня были разные значения при разработке и производстве.

base.py

# Django rest framework
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
        #'rest_framework.authentication.BasicAuthentication',
        #'rest_framework.authentication.SessionAuthentication',
    ],
    'DEFAULT_THROTTLE_CLASSES': (
        'rest_framework.throttling.AnonRateThrottle',
        'rest_framework.throttling.UserRateThrottle'
    ),
    'DEFAULT_THROTTLE_RATES': {
        'anon': '100/day',
        'user': '10/minute'
    },
}

production.py

from .base import *

REST_FRAMEWORK['DEFAULT_THROTTLE_RATES'] = {
    'anon': '1000/day',
    'user': '30/minute'
}
0 голосов
/ 14 марта 2011

Это зависит от того, является ли ваш TEMPLATE_CONTEXT_PROCESSORS списком или кортежем. Если это список, то он будет работать, если это кортеж, то вы получите ошибку при попытке добавить список и кортеж вместе.

Вы могли бы сделать, чтобы быть уверенным, что это работает ...

from django.conf import settings
tpl_ctx_prcs = list(settings.TEMPLATE_CONTEXT_PROCESSORS)
tpl_ctx_prcs.append('portal.context_processors.login_form_processor')
settings.TEMPLATE_CONTEXT_PROCESSORS = tuple(tpl_ctx_prcs)

Но будет ли это на самом деле делать то, что вы хотите, то есть добавить процессор контекста шаблона, чтобы он действительно вызывался, зависит от того, где и когда вы это делаете.

Есть ли причина, по которой вы не захотите просто добавить это в ваш файл settings.py? Даже если вам нужен только дополнительный контекст в пределах одного приложения, не так уж и плохо, чтобы он появлялся и в других ваших приложениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...