在 Django 中将 NVL 与字符串一起使用?

Use NVL with string in Django?

在 Django 应用程序中,我正在使用 cx_Oracle 显示体育运动员名单:

def get_players(self, sport_code='', term=0):
"""

:rtype: object
"""
con = cx_Oracle.Connection(settings.BANNER_CONNECTION_URL)
cursor = con.cursor()
query = 'select PREF_NAME, CLASS, ELIGIBLE_HOURS, CHECKED_IN, SEASONS_USED, MAJR1, NVL(MINR1, Null), CA_EMAIL, ID from swvsprt_web where ACTC = \'%s\' AND term = \'%s\' ORDER BY PREF_NAME' % (
    sport_code, term)
cursor.execute(query)
players = cursor.fetchall()
cursor.close()
con.close()
return players

如果他们没有未成年人,我希望未成年人只是空白

NVL(MINR1, Null)

但我不能完全让 NVL 表现出来。 "Null" 让它打印单词 "None." 如果我这样做

NVL(MINR1, 0)

它会显示 0,但如果我尝试以下任何操作,它们会导致网站崩溃并显示 500 错误:

NVL(MINR1, )

NVL(MINR1, '')

NVL(MINR1, "")

我们能否使用 NVL 使其将空值显示为空值?

在Python中,'null'对象是单例None

如果您想显示其他内容,您应该 post 处理数据,并将该字段中 None 的值替换为空字符串。

更好的选择可能是只保留 None 的值,就像在后端表示中一样。这比空串更能代表没有未成年人。

然后,在您的前端模板上,您可以检查空值,如果 MINR1 为 None,则显示空字符串。

在 Django 模板中有一个 Oracle 的类比 NVL

<td><span class="entityName">{{ attr.name|default_if_none:"" }}</span></td>

if attr.name is None 将输出一个空字符串。

这是documentation