Luc*_*nde 10 django django-models
我有2个app:同事和服务,每个都有自己的models.py
在同事models.py中,我可以"从services.models导入服务".
当我尝试在服务models.py中"从coworkers.models导入状态"时,我收到以下错误消息:
回溯(最近一次调用最后一次):文件"/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management /commands/runserver.py",第91行,在inner_run self.validate(display_num_errors = True)File"/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4. 3-py2.7.egg/django/core/management/base.py",第266行,在validate num_errors = get_validation_errors(s,app)文件"/ Users/lucas/Documents/projetos/cwk-manager/lib/python2 .7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/validation.py",第30行,get_app_errors()中的get_validation_errors(app_name,error)get.app_errors().items():文件"/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/db/models/loading.py",第158行,在get_app_errors中self._populate()文件"/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/db/models/upload.py",第64行,在_populate中 f.load_app(app_name,True)文件"/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/db/models /loading.py",第88行,在load_app models = import_module('.models',app_name)文件"/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4 .3-py2.7.egg/django/utils/importlib.py",第35行,在import_module 导入(名称)文件"/ Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/coworkers/models.py",第2行,来自services.models导入服务文件"/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/services/models.py",第5行,在课程服务中( models.Model):文件"/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/services/models.py",第11行,在服务状态= models.ForeignKey(Status)NameError:name'状态'未定义
-
同事models.py
from django.db import models
from services.models import Services
class Status(models.Model):
status_name = models.CharField(max_length=50)
status_description = models.TextField(blank=True, null=True)
class Meta:
verbose_name = "Status"
verbose_name_plural = "Status"
def __unicode__(self):
return self.status_name
Run Code Online (Sandbox Code Playgroud)
服务models.py
from django.db import models
from coworkers.models import Status
# This table contains all the information about plans and other general services provided.
class Services(models.Model):
service_name = models.CharField(max_length=100)
service_description = models.TextField(blank=True, null=True)
service_price = models.DecimalField(max_digits=7, decimal_places=2, blank=True, null=True)
creation_date = models.DateField(auto_now_add=True)
last_update = models.DateField(auto_now=True)
status = models.ForeignKey(Status)
class Meta:
verbose_name = "Services"
verbose_name_plural = "Services"
def __unicode__(self):
return self.service_name
Run Code Online (Sandbox Code Playgroud)
- 有人可以帮我看看我做错了什么吗?
提前致谢!
kob*_*buz 10
这是由Python中的循环导入引起的.您可以使用以下语法:
status = models.ForeignKey('coworkers.models.Status')
Run Code Online (Sandbox Code Playgroud)
Django将使用此路径确定模型,因此您无需导入Status.
在您的情况下,另一个解决方案是删除coworker.models中的第二个import语句,因为似乎没有在此文件中使用Services.
e.t*_*psy 10
在Django 1.6.5中:
import coworkers
status = models.ForeignKey(coworkers.models.Status)
Run Code Online (Sandbox Code Playgroud)
应该是这样的:
import coworkers
status = models.ForeignKey(coworkers.Status)
Run Code Online (Sandbox Code Playgroud)
我(现在)意识到OP正在使用Django 1.4.3,并且一些答案可以在那个版本的Django中解决这个问题.但是,我花了一段时间注意到版本,这些答案在1.6.5中不起作用.
干杯!
归档时间: |
|
查看次数: |
30547 次 |
最近记录: |