基于非空变量数量的Django模板字符串连接

时间:2019-05-23 04:36:12

标签: python django django-templates

我有两个要在Django模板上显示的字符串变量。如果变量a为空,则不显示它。与b类似。但是,如果a和b都是非空的,则用'&'连接两个字符串。

这是Python中的逻辑。

res = ''
if a != '':
    res = a

if b != '':
    if res == '':
        res = b
    else:
        res = res + ' & ' + b

print(res)

如何将这种逻辑写入Django模板?

3 个答案:

答案 0 :(得分:2)

您应该将此逻辑写为@ruddra的注释, 但是如果您坚持使用django模板,则可以尝试以下方法:

{% if a == ' ' %}
    {% if b == ' ' %}
        res = ''
    {% else %}
        res = {{b}}
    {% endif %}
{% else %}
    {% if b == ' ' %}
        res = {{a}}
    {% else %}
        res = {{a}} & {{b}}
    {% endif %}
{% endif %}

答案 1 :(得分:2)

正如其他人指出的那样,将其写在 view 中而不是 template 更加容易。

如果您确实要:

{% if a != '' and b != '' %}
  {{ a }}&{{ b }}
{% elif a != '' and b == '' %}
  {{ a }}
{% elif a == '' and b != '' %}
  {{ b }}
{% else %}
  {# You didn't mention #}
{% endif %}

答案 2 :(得分:1)

res=''
if a !='': 
     if b!='':
          res= a + '&' + b     
     else:
          print('b is empty')
else:
     print('a is empty')

print(res)

如果'res'为空,则不打印任何内容