无法访问djang中的简单数据库

2024-04-26 00:07:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我看了django doc民意测验的例子。现在我有了一个数据库name.info.db。我把它放在和管理.py,也在哪里数据库sqlite3是。 我把settings.py改成

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

我的型号.py是

class PItable(models.Model):
    pid_text = models.CharField(max_length=200)
    lname_text = models.CharField(max_length=200, null=True)
    fname_text = models.CharField(max_length=200, null=True)
    affs_text = models.CharField(max_length=2000, null=True)
    pmidlist_text = models.CharField(max_length=2000, null=True)
    clustering_text = models.CharField(max_length=2000, null=True)
    def __str__(self):
        return self.fname_text

我从视图和模型中删除了问题和选择(来自投票示例)。 是的

python manage.py makemigrations pidb
python manage.py migrate

我收到以下消息,没有显示我的数据库,仍然显示删除的模型(问题,选择)。我做错什么了?当我从pythonshell PItable.objects.filter(id=1)访问时,它显示为空[]。谢谢你的帮助!!你知道吗

$ 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", "choice_text", "question_id", "votes") SELECT "id", "choice_text", NULL, "votes" FROM "pidb_choice__old";
DROP TABLE "pidb_choice__old";
CREATE INDEX "pidb_choice_7aa0f6ee" ON "pidb_choice" ("question_id");

COMMIT;

Tags: textpyidtruemodelsnotintegernull
1条回答
网友
1楼 · 发布于 2024-04-26 00:07:45

阅读managed option。如果将其设置为False,则不会对此模型执行任何数据库表创建或删除操作。如果模型表示通过其他方法创建的现有表或数据库视图,则这一点非常有用。你知道吗

class PItable(models.Model):
    pid_text = models.CharField(max_length=200)
    lname_text = models.CharField(max_length=200, null=True)
    fname_text = models.CharField(max_length=200, null=True)
    affs_text = models.CharField(max_length=2000, null=True)
    pmidlist_text = models.CharField(max_length=2000, null=True)
    clustering_text = models.CharField(max_length=2000, null=True)

    class Meta(object):
        managed = False

    def __str__(self):
        return self.fname_text

相关问题 更多 >

    热门问题