【问题标题】:Trouble with Flask / Jinja2 conditional statement - displaying sqlalchemy classFlask / Jinja2 条件语句的问题 - 显示 sqlalchemy 类
【发布时间】:2019-04-04 07:04:59
【问题描述】:

我在我的烧瓶应用中添加了一个用户个人资料页面。除了一项之外,一切正常:

我想显示的是用户的“帐户创建日期”。由于我在创建某些用户之后添加了此功能(以及在注册时记录用户创建日期的逻辑),因此某些用户表中的此列将为空。

我决定通过使用 jinja2 if / else 语句检查用户是否有 user_created 日期来解决这个问题。

如果用户有日期,它将被显示。如果不是,则将其替换为“从黎明开始”,而不是日期。

问题是我的 {% if user.user_created %} 条件逻辑似乎在拉 sqlalchemy DateTime 类类型,而不是 None 显示为:

Member since: <class 'sqlalchemy.sql.sqltypes.DateTime'>

如果使用相同的模式来检查是否存在其他数据而没有问题,那么我猜它与包含 db.Column(db.DateTime) 的列有关,但我不确定如何解决它。

这是我的 Jinja 模板代码:

<h1>User: {{ user.username }}</h1>
  {% if user.about_me %}<p>{{ user.about_me }}</p>{% endif %}
  {% if user.user_created %}
    <p>Member since: {{ user.user_created }}</p>
  {% else %}
    <p>Member since: The dawn of time</p>
  {% endif %}

这是我的 sqlalchemy 用户模型中的列:

user_created = (db.DateTime)

任何帮助将不胜感激

【问题讨论】:

  • 噢,伙计,在阅读完这篇文章后,我发现我错过了 db.Column - 我会进行修复,看看是否是问题所在(可能是)

标签: python flask jinja2 flask-sqlalchemy


【解决方案1】:

是的,在测试了上面评论中的实现之后,这实际上是问题所在。

我不小心遗漏了模型中的 db.Column。现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2022-06-16
    • 2015-09-02
    相关资源
    最近更新 更多