Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django字符串\u if\u无效且为默认值_Python_Django_Templates_Django Templates - Fatal编程技术网

Python Django字符串\u if\u无效且为默认值

Python Django字符串\u if\u无效且为默认值,python,django,templates,django-templates,Python,Django,Templates,Django Templates,我在django模板设置中将string\u if\u invalid设置为“invalid”。 还有一些模板如下所示: {{ some_nonexisting_value|default:'Default value' }} TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'APP_DIRS': True, 'DIRS': [

我在django模板设置中将
string\u if\u invalid
设置为“invalid”。 还有一些模板如下所示:

{{ some_nonexisting_value|default:'Default value' }}
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'APP_DIRS': True,
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        'OPTIONS': {
            'libraries': {
                'utm_tags': 'kurator.templatetags.utm_tags',
            },
            'string_if_invalid': 'INVALID',
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'kurator.context_processors.static_hash',
                'kurator.context_processors.debug',
            ]
        },
    },
]
渲染后的结果看起来像是“无效的”。因此,不使用默认值。 如果字符串无效,是否有任何方法可以使用默认值而不更改模板

编辑: 模板设置如下所示:

{{ some_nonexisting_value|default:'Default value' }}
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'APP_DIRS': True,
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        'OPTIONS': {
            'libraries': {
                'utm_tags': 'kurator.templatetags.utm_tags',
            },
            'string_if_invalid': 'INVALID',
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'kurator.context_processors.static_hash',
                'kurator.context_processors.debug',
            ]
        },
    },
]

否,无法让
default
过滤器显示提供的默认值,而不是无效字符串

请注意,如果无效,则警告不要使用
字符串\u
选项:

仅用于调试目的

虽然
string\u if\u invalid
可能是一个有用的调试工具,但将其作为“开发默认值”打开是个坏主意

许多模板,包括管理站点中的模板,在遇到不存在的变量时依赖于模板系统的静默。如果将
'
以外的值指定给
string\u If\u无效
,则这些模板和站点将遇到渲染问题

通常,只有在调试特定模板问题时才应启用
string\u if\u invalid
,然后在调试完成后清除


对于您自己的模板,我想您可以编写自己的模板标记,该标记采用变量名和默认值,然后尝试从模板上下文中获取变量。但是,这并不能解决其他使用常规
默认
过滤器的模板中的问题,包括Django管理员。

请显示模板设置。已编辑问题