【发布时间】:2018-01-27 09:38:05
【问题描述】:
【问题讨论】:
标签: python django django-models
【问题讨论】:
标签: python django django-models
在你的模型中试试这个:
#Remove the import statement: from blog.models import sighinmodel
#Then, inside your model
user = models.ForeignKey('blog.sighinmodel' , on_delete = None)
另外,我想指出,这不是在你的 models.py 中导入其他模块的正确方法。
你应该这样做:
from appname.models import ModelName
#for importing from another module's models.
在 Django 的 import 语句中不需要相对路径名。 from appname.module import function/class 在几乎所有情况下都可以正常工作,直到发生循环冗余,在这种情况下,您必须采取多种方法中的一种。一种是我上面提到的方式:
方法一:简单的把这个放在ModelClass里面。不要导入任何东西。
user = models.ForeignKey('blog.sighinmodel' , on_delete = None)
方法二(不产生循环导入条件时)
from blog.models import sighinmodel
class SomeModel(models.Model):
user = models.ForeignKey(sighinmodel , on_delete = None)
注意:上述方法仅在不发生循环导入时有效。如果出现循环导入的情况,切换回第一种声明方式。
希望这会有所帮助。谢谢。
【讨论】:
出现此错误是因为不允许在顶级包之外进行相对导入。你的博客本身就是一个模块,所以如果你从那里导入你的模型,它就可以工作。
from blog.models import User, sighinmodel
我还建议您使用 CamelCase 作为模型名称,因为它们是命名约定的类。
【讨论】: