Django从models.py文件中拆分模型

时间:2013-11-27 17:07:34

标签: python django

我正在尝试将所有模型与models.py文件分开。我在link中提到了我正在做的事情。但问题是我的一个模型是django.contrib.auth.user,我在models.py中按如下方式生成一个函数来生成令牌。

def create_user_profile(sender, instance, created, **kwargs):  
    if created:  
        UserProfile.objects.create(user=instance)  

post_save.connect(create_user_profile, sender=User)

那么如何在_init_.py文件中导入该内容,因为我们将模型导入为

from myapp.models.foo import Foo

3 个答案:

答案 0 :(得分:1)

您应该只有models.pymodels/__init__.py,而且您似乎同时拥有这两者。其中一个模块可能会影响另一个模块,所以不要两者兼顾(即摆脱models.py

答案 1 :(得分:0)

如果我正确关注您的问题,则无需将User导入__init__.py。您只需要在声明create_user_profile的文件中导入它。导入本身是标准的:

from django.contrib.auth.models import User

答案 2 :(得分:0)

您无法导入命令,但例如导入上面定义的函数,可确保运行connect调用。 models.py文件正文中的函数调用也执行相同的raeson(即导入模型)。

# p.py: 
print "hello"   # a command executed while importing anything
def x():        # a definition that can be imported
    pass

# python shell
>>> from p import x
hello
>>>