Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Makemigrations无法使用ForeignKey字段将其迁移到具有AppConfig的应用程序_Python_Django_Python 2.7_Django Migrations_Django Apps - Fatal编程技术网

Python Django Makemigrations无法使用ForeignKey字段将其迁移到具有AppConfig的应用程序

Python Django Makemigrations无法使用ForeignKey字段将其迁移到具有AppConfig的应用程序,python,django,python-2.7,django-migrations,django-apps,Python,Django,Python 2.7,Django Migrations,Django Apps,我们有一个名为sessions的应用程序,由于Django有类似的Django.contrib.sessions应用程序,我们需要创建一个AppConfig来修复“重复应用程序”错误,也就是说,我们将应用程序标签设置为common.sessions 因此,我们有以下文件夹/文件结构: common sessions __init__.py apps.py models.py \uuuu init\uuuuu.py default_app_

我们有一个名为
sessions
的应用程序,由于Django有类似的
Django.contrib.sessions
应用程序,我们需要创建一个AppConfig来修复“重复应用程序”错误,也就是说,我们将应用程序标签设置为
common.sessions

因此,我们有以下文件夹/文件结构:

common
    sessions
        __init__.py
        apps.py
        models.py
\uuuu init\uuuuu.py

default_app_config='common.sessions.apps.CommonSessionsConfig'
apps.py

class CommonSessionsConfig(AppConfig):
名称='common.sessions'
label='common.sessions'
models.py

class SessionEventType(models.Model):
name=models.CharField()
类SessionEventTypeMapping(models.Model):
会话\事件\类型=models.ForeignKey(SessionEventType)
settings.py

已安装的应用程序=(
“公共会话”,
...
)
运行
manage.py迁移
将引发以下错误:

文件“/virtualenv/backoffice/lib/python2.7/site packages/django/core/management/commands/makemigrations.py”,句柄中的第125行
migration\u name=self.migration\u name,
文件“/virtualenv/backoffice/lib/python2.7/site packages/django/db/migrations/autodetector.py”,第43行,在更改中
更改=自我。检测更改(转换应用程序、图形)
文件“/virtualenv/backoffice/lib/python2.7/site packages/django/db/migrations/autodetector.py”,第111行,位于“检测更改”
self.new_apps=self.to_state.apps
文件“/virtualenv/backoffice/lib/python2.7/site packages/django/utils/functional.py”,第59行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
应用程序中的文件“/virtualenv/backoffice/lib/python2.7/site packages/django/db/migrations/state.py”,第166行
return StateApps(self.real\u应用程序、self.models)
文件“/virtualenv/backoffice/lib/python2.7/site packages/django/db/migrations/state.py”,第248行,在__
raise VALUERROR(消息格式(字段=操作[0][1],模型=查找\模型))
ValueError:字段common.sessions.SessionEventTypeMapping.session\u事件\u类型:common.sessions.common.sessions.SessionEventType引用的模型的查找失败
显然,它在这一部分失败,无法找到
SessionEventType
类/模型,即使它们只是在同一个
models.py
文件中,并且最终查找
common.sessions.common.sessions.sessions.SessionEventType
,这很奇怪:

session\u event\u type=models.ForeignKey(SessionEventType)
还尝试了此变体:

session\u event\u type=models.ForeignKey('common.sessions.SessionEventType'))
但这并没有起到任何作用,这也与此相关。顺便说一下,我们仍在使用Py2/Django1.8,因为这是一个庞大的项目,我们无法轻松升级版本。我们错过什么了吗?检查了AppConfig/ForeignKey文档,但似乎没有相关信息。如果我们不使用FK字段,也不会抛出错误(即,可以进行非关系字段迁移)。我们只希望
makemigrations
能够正常工作