如何使用初始数据对表进行popolate。 ?? 我读过这个: [1] https://docs.djangoproject.com/en/dev/howto/initial-data/#providing-initial-sql-data
direc tree:
|-- manage.py |-- mydb |-- QAapp | |-- __init__.py | |-- __init__.pyc | |-- migrations | | |-- 0001_initial.py | | |-- 0001_initial.pyc | | |-- 0002_auto__add_report__add_questioncontainer.py | | |-- 0002_auto__add_report__add_questioncontainer.pyc | | |-- __init__.py | | `-- __init__.pyc | |-- models.py | |-- models.pyc | |-- sql | | |-- questioncontainer.sql | | `-- scrap.py | |-- tests.py | `-- views.py `-- QAsite |-- __init__.py |-- __init__.pyc |-- settings.py |-- settings.pyc |-- urls.py `-- wsgi.py
模型文件:
from django.db import models
class QuestionContainer(models.Model):
topic = models.CharField(max_length=100)
subtopic = models.CharField(max_length=100)
question = models.TextField()
options = models.TextField()
correct_answer = models.CharField(max_length=50)
total_attempts = models.IntegerField()
solved = models.IntegerField()
level = models.IntegerField()
class Report(models.Model):
name = models.CharField(max_length=200)
email = models.EmailField()
content = models.TextField()
QuestionContainer = models.ForeignKey(QuestionContainer)
questioncontainer.sql包含
INSERT INTO QAapp_QuestionContainer (topic,subtopic,question,options,correct_answer,total_attempts,solved,level) VALUES ('general-aptitude','age-problems','The Average age of a class of 22 students in 21 years. The average increases by 1 when the teachers age also included. What is the age of the teacher?','A. 44 C. 41 B. 43 D. 40','[A]',0,0,0);
问题是:我是否需要在manage.py中添加一些东西[或]从shell [或]执行一些命令,以便用那些插入查询来填充表格?
我试过了:
python manage.py sqlall
python manage.py syncdb
答案 0 :(得分:0)
是的,你需要运行:
python manage.py syncdb
将创建所有表,然后运行您的sql脚本..
<强>更新强>
由于你使用南方,似乎南方控制syncdb并提供迁移,而不是模仿syncdb并在创建表后加载sql文件。我在DjangoSnippets上找到了这个片段,让你在南方做同样的事情。请考虑页面右侧可能需要更改sql文件名称的注释。 此代码于2011年发布,我不确定南方是否仍然如此。