2013-07-14 63 views
0

如果我有一個ForeignKey校園對象大廈的對象,我會如何修改大廈的JSON方法,因此看起來並不難看,因爲這:如果在Django JSON方法聲明

def json(self): 
    if self.campus: 
     return { 
     'id_number': self.id, 
     'campus': self.campus.json(), 
     'common_name': self.common_name, 
     #....all the other fields 
     } 

    else: 
     return { 
     'id_number': self.id, 
     'common_name': self.common_name, 
     #....all the other fields 
     }  

上面的代碼作品。我想知道是否有方法來格式化if語句,以便我可以重新定位它,而不必爲兩個if分支列出所有其他字段。主要是因爲如果我有另一個空的關係對象,空白=真,這會變得更加混亂。

+0

它如何「吼你」?什麼是錯誤? –

+0

看我的編輯(抱歉的混亂)。 – user2476581

回答

1

我會盡量避免兩次定義其他字段。

def json(self): 
    out = { 
    'id_number': self.id, 
    'common_name': self.common_name, 
    #....all the other fields 
    } 
    if self.campus: 
     out['campus'] = self.campus.json() 
    return out 

注意,此方法與原來的方法返回Python字典,而不是一個JSON編碼字符串。

+0

這就是我試圖解決的問題 - 謝謝!是的,對於不適當的術語感到抱歉。 – user2476581