2016-09-27 40 views
2

我跟着django文档并通过了民意调查的例子。我有一个sqlite数据库'nameinfodb'。我想通过在线查找姓氏来访问它。 我设置models.py作为在django中设置数据库

class Infotable(models.Model): 
    pid_text = models.CharField(max_length=200) 
    lname_text = models.CharField(max_length=200) 
    fname_text = models.CharField(max_length=200) 
    affs_text = models.CharField(max_length=2000) 
    idlist_text = models.CharField(max_length=2000) 
    def __str__(self): 
     return self 

我复制name.info.db到db.sqlite3定位,改变settings.py:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'name.info.db'), 
    } 
} 

然后我跑

python manage.py migrate 
python manage.py makemigrations pidb 

然后我检查我是否正确

$ python manage.py sqlmigrate pidb 0001 

BEGIN; 
-- 
-- Create model Choice 
-- 
CREATE TABLE "pidb_choice" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL); 
-- 
-- Create model Question 
-- 
CREATE TABLE "pidb_question" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "question_text" varchar(200) NOT NULL, "pub_date" datetime NOT NULL); 
-- 
-- Add field question to choice 
-- 
ALTER TABLE "pidb_choice" RENAME TO "pidb_choice__old"; 
CREATE TABLE "pidb_choice" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL, "question_id" integer NOT NULL REFERENCES "pidb_question" ("id")); 
INSERT INTO "pidb_choice" ("id", "question_id", "choice_text", "votes") SELECT "id", NULL, "choice_text", "votes" FROM "pidb_choice__old"; 
DROP TABLE "pidb_choice__old"; 
CREATE INDEX "pidb_choice_7aa0f6ee" ON "pidb_choice" ("question_id"); 

COMMIT; 

我没有看到有关新数据库的任何信息,我只能看到示例轮询数据。我在这里做错了什么吗?我所需要做的就是连接到name.info.db,并按姓氏访问它。谢谢!

回答

3

你需要周围的人用另一种方式:

python manage.py makemigrations pidb 
python manage.py migrate 

教程See this part了解更多信息