1

在 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 让它显示空值吗?

4

2 回答 2

0

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

如果要显示其他内容,则应对数据进行后处理,并将None该字段中的值替换为空字符串。

更好的选择可能None是在后端表示中保留原样的值。这比空字符串更能代表没有未成年人。

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

于 2017-09-01T18:49:49.677 回答
0

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

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

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

这是文档

于 2020-10-20T19:18:04.617 回答