我正在尝试将所有模型与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
答案 0 :(得分:1)
您应该只有models.py
或models/__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
>>>