Python django应用程序不激活模型

Python django应用程序不激活模型,python,django,Python,Django,在我的Django应用程序中,无法激活模型 manage.py validate返回0错误,无论我做什么,即使我故意键入错误代码。 manage.py syncdb不同步任何内容 我怎样才能解决这个问题 INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'dja

在我的Django应用程序中,无法激活模型

manage.py validate返回0错误,无论我做什么,即使我故意键入错误代码。 manage.py syncdb不同步任何内容

我怎样才能解决这个问题

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'YolaSite.consumer',
    'south',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)
这里是数据库连接:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': 'testdb',                      # Or path to database file if using sqlite3.
    'USER': 'postgres',                      # Not used with sqlite3.
    'PASSWORD': 'alexsis',                  # Not used with sqlite3.
    'HOST': '127.0.0.1',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': '5432',                      # Set to empty string for default. Not used with sqlite3.
}
}根据您的评论:

我已经能够第一次激活模型,所以网站django应用程序的版本实际上正在运行,但现在我尝试更改模型,似乎没有被识别

您已经成功地使用manage.py syncdb创建了数据库表,现在您正尝试使用它来同步更改。但syncdb并不是这样做的。Django 1.4的文档如下:

Syncdb不会更改现有表

syncdb将仅为尚未安装的模型创建表。它永远不会发出ALTERTABLE语句来匹配安装后对模型类所做的更改。对模型类和数据库模式的更改通常涉及某种形式的歧义,在这种情况下,Django必须猜测正确的更改。在此过程中存在关键数据丢失的风险

如果对模型进行了更改,并希望更改数据库表以匹配,请使用sql命令显示新的sql结构,并将其与现有的表架构进行比较,以确定更改

这就是为什么你没有得到任何错误。对于数据库迁移,请使用已安装的South。阅读文档了解其用法。

您可以使用south, 或者再次删除表和syncdb

Django的syncdb命令仅在第一次创建表,但不支持模型演化

但是正如我们所看到的,您已经安装了South,它是数据库/模式迁移的正确工具。下一步是,你需要告诉南方它需要处理哪些模型

只要您只有一个开发环境,我建议您删除自己应用程序的所有表,然后按照中的说明进行操作

简言之:

首先,让South观看特定应用程序的模型并创建初始迁移:

./manage.py schemamigration your_app_name --initial
其次,将此迁移应用于数据库:

./manage.py migrate your_app_name
第三,任何即将对您的模型进行的更改都需要进行新的迁移,其生成方式如下:

./manage.py schemamigration your_app_name --auto
每次迁移都必须部署,因此:

./manage.py migrate your_app_name

有关更多信息,请阅读。希望这有帮助

返回的错误是什么?您使用的是哪个版本的Django?您的数据库连接是如何定义的?请提供更多信息,或者显示您遇到的错误?Django 1.4.9 python 2.7.3没有返回错误,这就是问题所在