【问题标题】:If statement in Django JSON methodDjango JSON 方法中的 if 语句
【发布时间】:2013-07-14 21:46:08
【问题描述】:

如果我有一个带有 ForeignKey Campus 对象的 Building 对象,我将如何修改 Building 的 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 分支的所有其他字段。主要是因为如果我有另一个为空的关系对象空白=True,这会变得更加混乱。

【问题讨论】:

  • 它是如何“对你大喊大叫”的?错误是什么?
  • 查看我的编辑(抱歉造成混淆)。

标签: django json django-models


【解决方案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 编码的字符串。

【讨论】:

  • 这就是我试图解决的问题——谢谢!是的,很抱歉使用不当的术语。
猜你喜欢
  • 2011-12-01
  • 1970-01-01
  • 2013-11-24
  • 2015-06-08
  • 2018-04-10
  • 2023-03-16
  • 1970-01-01
  • 2015-12-14
  • 2020-02-29
相关资源
最近更新 更多