Aquí está mi solución. Agregue el código a continuación al final de su archivo de configuración.
# Process --set command line option
import sys
# This module can be imported several times,
# check if the option has been retrieved already.
if not hasattr(sys, 'arg_set'):
# Search for the option.
args = filter(lambda arg: arg[:6] == '--set=', sys.argv[1:])
if len(args) > 0:
expr = args[0][6:]
# Remove the option from argument list, because the actual command
# knows nothing about it.
sys.argv.remove(args[0])
else:
# --set is not provided.
expr = ''
# Save option value for future use.
sys.arg_set = expr
# Execute the option value.
exec sys.arg_set
Entonces sólo tiene que pasar ningún código para cualquier comando de gestión:
./manage.py runserver --set="DEBUG=True ; TEMPLATE_DEBUG=True"
es lo que quieres para establecer DEBUG cada vez que 'python manage.py runserver' llamada o si tiene su comando personalizado' python manage.py foo' y quieres establecer DEBUG dentro de él? – Kirill
Quiero establecer cualquier configuración para cualquier comando. De esta manera: './manage.py --set =" DEBUG = True "runserver'. Quizás la forma más fácil es ejecutar un valor de parámetro de línea de comando directamente en settings.py. Pero esperaba que hubiera una manera de no modificar el código fuente en absoluto. – raacer