【问题标题】:Django move models classmethod to another fileDjango将模型类方法移动到另一个文件
【发布时间】:2020-12-16 07:43:51
【问题描述】:

我有模特

Order(models.Model):
  name = models.Charfield()
  
  @classmethod 
  do_something(cls):
    print('do soemthing')

我想要做的是将do_something 方法从我的模型移动到另一个文件。我想这样做是因为我在这个模型中有几个其他的大方法并且想要构造代码,不喜欢长度这个文件。它变得越来越大,超过 700 行代码。

所以我想将我的方法移动到另一个文件并导入它,所以它仍然可以像modelmethod一样使用

像这样:

Order.do_something()

有什么想法吗?

【问题讨论】:

标签: python-3.x django


【解决方案1】:

使用inheritance -- (wiki)

# some_package/some_module.py

class MyFooKlass:
    @classmethod
    def do_something(cls):
        # do something
        return 'foo'

# my_app/models.py

from some_package.some_module import MyFooKlass

class Order(models.Model, MyFooKlass):
    name = models.CharField()

【讨论】:

  • 我会检查的
猜你喜欢
  • 1970-01-01
  • 2016-11-07
  • 2018-07-29
  • 2019-06-20
  • 2012-07-14
  • 2019-07-13
  • 2019-05-17
  • 2011-12-14
  • 1970-01-01
相关资源
最近更新 更多