我想发展我的Django项目的服务器端API,但我已经有一大堆在models.py文件中每一个模型声明中定义的方法上来。 所以我想创造一种外观类来处理API的方法,使模型只与他们的财产。
我曾经有过这样的结构:
# models.py
class MyModel(models.Model):
prop1 = ...
prop2 = ...
def f1(self):
pass
def f2(self):
pass
虽然现在II有这样一条:
# models.py
class MyModel(models.Model):
prop1 = ...
prop2 = ...
# wrappers.py
from myapp import models
class MyModel(models.MyModel):
def f1(self):
pass
def f2(self):
pass
这是非常有趣的,而我把它写下来,因为它让我不失他们没有分开的功能定义。 然而,当我试图测试新的数据模型,我很困惑。
$ python manage.py shell
Python 2.7.3 (default, Apr 20 2012, 22:44:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from myapp.wrappers import MyModel
>>> MyModel
<class 'MyProject.myapp.models.MyModel'>
WTF是怎么回事!? 为什么我得到的模型类,当我要求的“包装”一个呢?
当然,这保持模型的所有特性,但显然缺乏所有的在包装中定义的方法。
我希望你能帮助我这个,因为它是一个完全胡说八道我。 谢谢您的帮助。