我想使用外部脚本预填充我的数据库。脚本如下
# -*- coding:utf-8-*-
import os, sys
from random import choice
PROJECT_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__),'..','..'))
sys.path.append(PROJECT_DIR)
os.environ['DJANGO_SETTINGS_MODULE']='geoedu.settings'
from school.models import School
from student.models import Student
if __name__=='__main__':
student = Student(first_name=choice(first_names_males), last_name=choice(last_names_males),
father_name=choice(first_names_males), mother_name=choice(first_names_females),
mobile=choice(mobiles), telephone=choice(telephones))
student.save()
其中选择的参数是带有姓名和电话的列表。当我运行它时,虽然我收到以下错误
django.db.utils.DatabaseError: no such table: student_student
目录树
geoedu
├── geoedu
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
├── geoedu.db
├── geoedu.sublime-project
├── geoedu.sublime-workspace
├── manage.py
├── school
│ ├── admin.py
│ ├── admin.pyc
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── tests.py
│ └── views.py
├── scripts
│ └── populate.py
└── student
├── admin.py
├── admin.pyc
├── __init__.py
├── __init__.pyc
├── models.py
├── models.pyc
├── tests.py
└── views.py
它的作用是在脚本文件夹中创建一个新的 geoedu.db 并使用它(它是空的,当然没有 student_student 表)
为什么会发生这种情况?PROJECT_DIR 是正确的(打印出来的),并且是树的根,它是所有顶部的 geodedu。
编辑:创建新学生时会创建新的 geoedu.db。如果我注释掉这些行 geoedu.db 不会被创建。