2017-09-01 79 views
1

在一个Django应用程序,我使用cx_Oracle显示的竞技选手名册:在Django中使用NVL和字符串?

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行事。 “空”使它打印单词“无”。如果我做

NVL(MINR1, 0) 

它会显示一个0,但如果我尝试采取以下的,他们崩溃的网站有500错误:

NVL(MINR1,) 

NVL(MINR1, '')

NVL(MINR1, "")

我们可以使用NVL将它显示为空值吗?

+0

你在哪里显示这些值,你希望它们显示为空而不是'None'?在HTML中通过模板? – rawbeans

+0

正确,模板正在渲染一张表​​,​​{{player.1}}等等 –

回答

0

在Python中,“空”的对象是单None

如果你想别的东西显示,你应该张贴过程中的数据,并在该领域有一个空字符串替换的None值。

更好的选择可能是将None的值保留在后端表示中。这比没有一个空字符串更有代表性。

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

+0

谢谢。因此,请尝试在模板图层而不是模型图层上处理它。我要给这个镜头。 –

+0

@KevinCelebi为你做了这项工作?如果是这样,你可以投票/接受我的答案。否则,我很乐意帮助您继续完成此工作。 – rawbeans

+0

我很想upvote这个,但Stackoverflow不会让我做任何事情,因为我太新了!不过谢谢你的帮助,模板层比我知道的要强大得多。 –