Django 和 PostgreSQL “未找到填充数据”

1 投票
3 回答
1687 浏览
提问于 2025-04-17 01:39

我一直在尝试把PostgreSQL和我的Django应用一起使用,但在启动项目时就遇到了一个错误。那个时候我只有以下这些文件:__init__.pymanage.pysettings.pycurls.pyc__init__.pycsettings.pyurls.py,而且在我添加了模型之后也出现了这个错误。

python manage.py syncdb
Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.

我甚至没有尝试加载任何数据。Psycopg2已经安装好了。这是我settings.py文件中的数据库部分。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'myapp_development',                     
        # Or path to database file if using sqlite3.
        'USER': 'foo',                      # Not used with sqlite3.
        'PASSWORD': 'password',                  # Not used with sqlite3.
        'HOST': '',       
        # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                    
        # Set to empty string for default. Not used with sqlite3.
    }
}

3 个回答

1

当你运行

manage.py syncdb

时,Django 会尝试为你项目中的应用加载初始数据。默认情况下,这些数据是从 app-dir\fixtures\initial_data.[xml/yaml/json] 文件中加载的。所以当这个文件不存在时,你会看到:

没有找到数据文件

想了解更多,可以查看 Django 的 官方页面

2

你有没有在你的 settings.py 文件里设置 FIXTURE_DIRS 这个选项的值呢?

想了解更多,可以查看 这里 的文档。

4

这意味着Django没有找到任何数据文件。如果没有数据文件,通常会显示这个标准信息。

数据文件是一个特定格式的文件,用来根据已有的模型在数据库中创建真实的对象:

[
  {
    "model": "myapp.person",
    "pk": 1,
    "fields": {
      "first_name": "John",
      "last_name": "Lennon"
    }
  },
  {
    "model": "myapp.person",
    "pk": 2,
    "fields": {
      "first_name": "Paul",
      "last_name": "McCartney"
    }
  }
]

想了解更多细节,可以查看这里: http://docs.djangoproject.com/en/dev/howto/initial-data/

撰写回答