variable template tag registered one not must library ifequal examples dirs python django django-settings

python - template - Django: comprobar si la variable de configuración está establecida



is not a registered tag library. must be one of: (1)

Aquí hay un ejemplo de lo que estoy tratando de lograr. El efecto deseado es que una característica particular debe tener efecto si y solo si se define su configuración relevante. De lo contrario, la función debe estar deshabilitada.

settings.py:

SOME_VARIABLE = ''some-string'' ANOTHER_VARIABLE = ''another-string''

random_code_file.py:

from django.conf import settings if settings.is_defined(''ANOTHER_VARIABLE''): # <- I need this. do_something(settings.ANOTHER_VARIABLE) else: do_something_completely_different()

En el código anterior, me falta lo que debo hacer en lugar de settings.is_defined .

Si este es el enfoque equivocado del problema, también me encantaría saber sobre enfoques alternativos. El efecto deseado es una función de activación automática que solo tiene efecto si existe la configuración relevante. Preferiría evitar algunos settings.ACTIVE_FEATURES configuración especial.ACTIVE_FEATURES o un valor especial como una cadena en blanco o Ninguno para que la característica evalúe si tiene efecto o no.

Lo último que me gustaría hacer es usar try / except. Prefiero ir por un valor vacío que indique la exclusión de la función. - Pero si intentarlo / exceptuarlo es realmente el método preferido, marcaré la respuesta como correcta si se proporcionan fuentes o explicaciones exhaustivas. De hecho eso va por cualquier respuesta.

En resumen, necesito la forma correcta de comprobar si una variable de configuración está definida en Django.

¡Gracias por adelantado!


Parecía que lo habías hecho de la manera correcta: importar el módulo de configuración y verificar.

Y puedes intentar usar:

if hasattr(settings, ''ANOTHER_VARIABLE''):

en lugar de:

if settings.is_defined(''ANOTHER_VARIABLE''):

Encontré la documentación , espero que esto pueda ayudar.