当前位置: 首页 > 知识库问答 >
问题:

在django模板中,什么是等同于“无”的?

柳韬
2023-03-14

我想看看Django模板中的字段/变量是否为none。正确的语法是什么?

这就是我目前拥有的:

{% if profile.user.first_name is null %}
  <p> -- </p>
{% elif %}
  {{ profile.user.first_name }} {{ profile.user.last_name }}
{% endif%}

在上面的示例中,我将使用什么来替换“null”?

共有3个答案

叶衡虑
2023-03-14

您还可以使用内置模板过滤器默认值

如果值的计算结果为False(例如,None,空字符串,0,False);将显示默认的“-”。

{{ profile.user.first_name|default:"--" }}

文档:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#default

许子平
2023-03-14

如果没有

{{ profile.user.first_name|default_if_none:"--" }}
胥玮
2023-03-14

无,假和真都可以在模板标签和过滤器中使用。无,假,空字符串('', "", """""")和空列表/元组都在以下情况下计算为False通过if进行评估,因此您可以轻松地执行

{% if profile.user.first_name == None %}
{% if not profile.user.first_name %}

提示:@Fabiocerqueira是对的,把逻辑留给模型,把模板限制为唯一的表示层,并在你的模型中计算这样的东西。一个例子:

# someapp/models.py
class UserProfile(models.Model):
    user = models.OneToOneField('auth.User')
    # other fields

    def get_full_name(self):
        if not self.user.first_name:
            return
        return ' '.join([self.user.first_name, self.user.last_name])

# template
{{ user.get_profile.get_full_name }}

希望这有帮助:)

 类似资料:
  • 我创建了新项目,但找不到出错的地方。 Django versiob - 3.1.5 蟒蛇 3.7.4 模板DoesNotExist位于/index。html请求方法:GET请求URL:http://127.0.0.1:8000/Django版本:3.1.5异常类型:TemplateDoesNotExist异常值: 索引。html异常位置:C:\Users\user\PycharmProjects\

  • 我是Java新手。我只做了大约一年的编程。Spring使用模板是什么意思?在Spring,有jdbc模板、jms模板等。。java中的模板类是什么?它们是一种特殊的设计模式还是什么? 提前谢谢你。

  • 问题内容: 我了解C 中模板的方面与Java和C#中的泛型不同。C#是一种形式,Java使用类型擦除,C 使用鸭子类型,等等。C 模板可以做很多事情,而Java和C#泛型则做不到(例如,模板专业化)。但是 Java泛型可以做很多事情,而C#和C ++则做不到(例如,使泛型族的有界类型参数成为现实 ),而 C#泛型可以做的很多事情Java和C 不能做(例如运行时通用反射)。 [编辑:显然Java泛型

  • 我搜了Swift的书,找不到@同步的Swift版本,请问在Swift中如何进行互斥?

  • 问题内容: 我有一个大型数据库,其中包含有标签的记录,我想删除它们。当然,有一种方法可以创建一个全选,使用和更新数据库的PHP脚本,但这需要很长时间。那么,如何使用简单(或复杂)的MySQL查询来做到这一点? 问题答案: 我不相信仅在MySQL中有任何有效的方法可以做到这一点。 MySQL确实有一个功能,但是它只能替换常量字符串,不能替换模式。您可能会编写一个MySQL存储函数来搜索和替换标签,但

  • 问题内容: http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup 我可以想到几种使用循环的方法,但是我特别想知道是否有一个整齐的单缸纸。 问题答案: 结合使用可获得不错的解决方案: