【问题标题】:django.db.utils.OperationalError: no such table Django 2django.db.utils.OperationalError:没有这样的表 Django 2
【发布时间】:2020-04-27 17:56:22
【问题描述】:

我做了什么:

  1. 我删除了数据库
  2. 删除了 pycache 文件和迁移文件
  3. python manage.py makemigrations app_name 和 python manage.py migrate app_name
  4. 多次关闭服务器

但这是我收到的错误:

settings.py

INSTALLED_APPS = [
    'blog',
    'users',
    'crispy_forms',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

]

users/models.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics')

    def __str__(self):
        return f'{self.user.username} Profile'

    def save(self, *args, **kwargs):
        super().save()

        img = Image.open(self.image.path)

        if img.height > 300 or img.width > 300:
            output_size = (300, 300)
            img.thumbnail(output_size)
            img.save(self.image.path)

blog/models.py

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk': self.pk})

【问题讨论】:

  • 如果您在迁移时特别提及您的应用名称,您必须为您的两个应用都这样做,否则不要提及应用名称,因此如果有任何更改,迁移将应用于所有应用发生在模特身上

标签: python django django-models database-migration


【解决方案1】:

我认为您没有正确迁移博客应用模型。 你能显示你的博客应用迁移文件吗 并且您应该在模型中的 Meta 类中定义您的 db_name,否则您的模型将附加到您的应用程序中,这可能会在将来给您带来麻烦

【讨论】:

    【解决方案2】:

    使用此命令迁移您的博客应用

    python manage.py makemigrations blog
    

    【讨论】:

      【解决方案3】:

      请跑

           1. python manage.py makemigrations
           2. python manage.py migrate
           3. python manage.py runserver
      

      【讨论】:

      • 如果你读得好,你会发现我所做的和你写的完全一样,如果这么简单我就不会来stackoverflow了
      猜你喜欢
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 2021-12-29
      • 2016-12-28
      • 2021-08-10
      相关资源
      最近更新 更多