为了账号安全,请及时绑定邮箱和手机立即绑定

如何强制/警告开发人员对待类/django 模型的方式

如何强制/警告开发人员对待类/django 模型的方式

千巷猫影 2021-08-24 17:25:04
我们有一个Django项目,今年我多次遇到这个问题。我将简化示例:class MyModel(Model):    my_attr = ....    ...    def get_my_attr_safe():        if not self.my_attr:            return somecalculation()        return self.my_attr我想强制开发人员使用get_my_attr_safe()而不是my_attr.这是一个庞大而复杂的模型。我的想法是以某种方式覆盖__getattribute__并引发异常,如果它被直接调用,但我认为这行不通。而且,Django当然有时需要ModelFields直接调用,所以我不能就这样去做。如果可能Exception的method话,我想提出或确保他们获得他们必须使用的信息。例如,我需要他们在模板中随处使用该方法:{{ obj.get_my_attr_safe }}而不是{{ obj.my_attr }}解决方案不一定是Pythonic,也许有一种方法可以PyCharm只使用。就足够了。
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

在这里使用下划线可能会有所帮助:


class MyModel(Model):


    _my_attr = None


    def get_my_attr_safe(self):

        if self._my_attr is None:

            self._my_attr = somecalculation()

        return self._my_attr


    my_attr = property(get_my_attr_safe)


查看完整回答
反对 回复 2021-08-24
  • 2 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信