【问题标题】:OperationalError:no such table:article_articleOperationalError:没有这样的表:article_article
【发布时间】:2015-07-22 01:01:24
【问题描述】:

最近在学习 django,遇到了 Django 的问题。 这是我的 models.py

# -*- coding:utf-8 -*-
#/usr/bin/env python
from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length = 100)
    category = models.CharField(max_length=50,blank=True)
    date_time = models.DateTimeField(auto_now_add=True)
    content = models.TextField(blank=True,null=True)

    def __unicode__(self):
        return self.title

    class Meta:
        ordering = ['date_time']

首先我在 cmd 中输入这些:

  1. python manage.py 迁移
  2. python manage.py makemigrations
  3. python manage.py 迁移

但是,当我在 Django shell 中输入以下代码时:

from article.models import Article
Article.objects.create(title = 'Hello World', category = 'Python', content = 'what')

我收到此错误消息:

OperationalErrors:no such table:article_article

怎么了? 感谢您的帮助

【问题讨论】:

  • 您确定您的迁移运行成功了吗?在第 2 步和第 3 步之后,您收到了什么信息?
  • 哦,谢谢!我找到了错误
  • @evbo:如果你能交流一下你是如何解决你的问题的,那将会很有帮助
  • 只是应用名称,我弄错了...
  • 好吧!因此,您最好标记对您有用的答案

标签: python django


【解决方案1】:

可能迁移中的某些内容不正确...

要创建一个应用程序:

1)python manage.py migrate

2)python manage.py startapp myapp

3) 在 settings.py 中将'myapp', 添加到INSTALLED_APPS

4) 创建模型并保存

5)python manage.py makemigrations myapp

6)python manage.py migrate myapp

每次更改 models.py 中的内容时,都必须执行最后两个步骤。

现在一些链接:12 和一个非常有用的教程Django Girls

【讨论】:

    【解决方案2】:

    您可以通过删除 db.sqlite 来简单地擦除您的 db 然后./manage.py syncdb

    如果你不想丢失你的数据,那么你首先需要,在创建syncdb之后,运行./manage.py makemigrations./manage.py migrate。 然后,在更改模型后,您运行 ./manage.py makemigrations./manage.py migrate - 这些命令将对数据库架构进行必要的更改。

    【讨论】:

      猜你喜欢
      • 2017-02-19
      • 2015-07-30
      • 2016-02-20
      • 1970-01-01
      • 2012-01-15
      • 2015-04-20
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多