【问题标题】:Django 1.10 makemigrations errorsDjango 1.10 makemigrations 错误
【发布时间】:2017-04-12 22:07:25
【问题描述】:

在运行 Django 1.10.6 的 Ubuntu 机器上安装 Django 应用程序时遇到重大问题。

我习惯使用旧版本的 Django,现在我无法安装我的 webapp。情况如下:

我有一个名为 myproject 的 Django 项目。文件结构为:

(BASEDIR)/manage.py
(BASEDIR)/mycommon/    # I will discuss mycommon below
(BASEDIR)/myproject/
(BASEDIR)/myproject/settings.py
(BASEDIR)/myproject/urls.py
(BASEDIR)/myproject/views.py
(BASEDIR)/myproject/wsgi.py
(BASEDIR)/myproject/models/
(BASEDIR)/myproject/models/__init__.py
(BASEDIR)/myproject/models/models.py

事实证明,对于这个项目,我需要将我的模型放在一个通用包中,因为有另一个 python 应用程序(使用 Twisted 引导 Django)需要访问这些模型。我将把这个包称为“mycommon”。所以我的“真实”模型在这里:

(BASEDIR)/mycommon/
(BASEDIR)/mycommon/utils.py
(BASEDIR)/mycommon/models/
(BASEDIR)/mycommon/models/__init__.py
(BASEDIR)/mycommon/models/models.py

所以 Django 设置文件在 (BASEDIR)/myproject/settings.py 并且 INSTALLED_APPS 参数设置为:

INSTALLED_APPS = (
'myproject.models',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
)

最后,请注意 myproject/models/models.py 非常简单,因为它只使用了 mycommon 模型:

from django.db import models
from mycommon.models.models import *

到目前为止一切顺利,这是一个在旧 Django 版本上运行良好的结构。无论如何,我从一个空的 MYSQL 数据库(已创建但为空)开始,现在我回到(BASEDIR)并运行:

python manage.py makemigrations mycommon.models

不幸的是,我收到这样的错误:

RuntimeError: Model class mycommon.models.models.SomeModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

那我做错了什么?

【问题讨论】:

    标签: django django-models django-migrations


    【解决方案1】:

    INSTALLED_APPS 中应该只有'myproject',没有'.models'

    但是由于您使用的是 Django 1.10,如果您通过 manage.py startapp mycommon 创建您的 mycommon 应用程序会更干净。这将创建一些文件,但是您应该将模型移动到mycommon/models.py。注意mycommon/apps.py。您不必触摸此文件,只需将其包含在INSTALLED_APPS 列表中:'mycommon.apps.MycommonConfig'。这样迁移框架将自动发现您的模型。

    最后,删除myproject/models,因为myproject 持有项目配置。

    【讨论】:

      猜你喜欢
      • 2017-07-30
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 2021-07-06
      • 2016-05-22
      • 2019-09-10
      相关资源
      最近更新 更多