首页 > 解决方案 > Django将模型类方法移动到另一个文件

问题描述

我有模特

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

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

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

像这样:

Order.do_something()

有任何想法吗?

标签: python-3.xdjango

解决方案


使用继承——(维基)

# 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()

推荐阅读