Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
Django loaddata设置错误_Django_Loaddata - Fatal编程技术网

Django loaddata设置错误

Django loaddata设置错误,django,loaddata,Django,Loaddata,尝试在本地计算机(win/sqlite)上使用loaddata时: 我得到以下错误: raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_M

尝试在本地计算机(win/sqlite)上使用loaddata时:

我得到以下错误:

raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
我正在使用djangoconfig应用程序,如果有帮助:

"""
Django-config settings loader.
"""

import os

CONFIG_IDENTIFIER = os.getenv("CONFIG_IDENTIFIER")
if CONFIG_IDENTIFIER is None:
    CONFIG_IDENTIFIER = 'local'

# Import defaults
from config.base import *

# Import overrides
overrides = __import__(
    "config." + CONFIG_IDENTIFIER,
    globals(),
    locals(),
    ["config"]
)

for attribute in dir(overrides):
    if attribute.isupper():
        globals()[attribute] = getattr(overrides, attribute)
projects>python manage.py loaddata dumpdata.json--settings=config.base

WARNING: Forced to run environment with LOCAL configuration.

Problem installing fixture 'dumpdata.json': Traceback
 (most recent call last):
  File "loaddata.py", line 174, in handle
    obj.save(using=using)

...


  File "C:\Python26\lib\site-packages\django\db\backends\sqlite3\base.py", line
234, in execute
    return Database.Cursor.execute(self, query, params)
IntegrityError: columns app_label, model are not unique

向Django提供设置有两种标准方法

  • 使用set(或在Unix上导出)
    set DJANGO\u SETTINGS\u MODULE=mysite.SETTINGS
  • 或者作为选项使用
    django-admin.py--settings=mysite.settings
做不同的事情,因为它允许您有多个设置文件。Django config与manage.py一起使用,以指定要使用的文件。尽可能使用manage.py;它建立了环境。在您的情况下,请尝试这样做,其中--settings指向要从django config的config文件夹中使用的特定.py文件

django-admin.py loaddata dumpdata.json——设置=


实际上--设置需要python包语法,所以除了设置初始项目外,不要使用
django admin.py
。拥有项目后,请改用
manage.py
——它会设置对设置文件的引用。

syncdb
将加载内容类型,您需要在加载数据之前清除该表。大概是这样的:

c:\> sqlite3 classifier.db
sqlite> delete from django_content_type;
sqlite> ^Z
c:\> python django-admin.py loaddata dumpdata.json

另外,请确保在同步数据库时不要创建超级用户或任何用户,因为这些用户可能也会与您的数据设备发生冲突…

我尝试过,但没有成功-可能是因为我使用djangoconfig应用程序来管理我的设置。用解释器的输出编辑了我的问题。manage.py似乎正在获取正确的配置文件,但现在我遇到了一个新错误。实际上,您不需要使用manage.py进行--settings。看起来loaddata可以与manage.py一起使用,所以请尝试取消设置选项。
IntegrityError
看起来像是来自contrib包之一的内容类型表。我敢打赌,您试图加载到的数据库中已经有一些内容,可能来自之前失败的加载。由于您似乎正在使用SQLite,请删除数据库文件,
syncdb
(如果需要)以创建新的数据库,然后重试加载。同意@Mike DeSimone,但
syncdb
将使用数据初始化内容类型,因此您可能会遇到相同的错误(请按照他的建议查看!)。您可能需要编辑dumpdata.json以取出content_types.Removed sqlite db的数据。没有同步数据库。尝试loaddata=相同错误。当我遇到类似情况时,我发现这个答案非常有用。这让我很快摆脱困境,谢谢!
c:\> sqlite3 classifier.db
sqlite> delete from django_content_type;
sqlite> ^Z
c:\> python django-admin.py loaddata dumpdata.json