【发布时间】: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