Python 制作django AJAX时出现操作错误
这就是我犯的错误 django.db.utils.OperationalError:没有这样的表:照片\u帖子\u喜欢 我跟随这个视频创建了一个like按钮 那时我已经创建了模型(Post)。就在我在models.py中添加新行(likes)并运行makemigrations时,它迁移时没有任何问题。但是,当我运行migrate时,出现了这个错误 这是models.py文件Python 制作django AJAX时出现操作错误,python,django,django-models,Python,Django,Django Models,这就是我犯的错误 django.db.utils.OperationalError:没有这样的表:照片\u帖子\u喜欢 我跟随这个视频创建了一个like按钮 那时我已经创建了模型(Post)。就在我在models.py中添加新行(likes)并运行makemigrations时,它迁移时没有任何问题。但是,当我运行migrate时,出现了这个错误 这是models.py文件 from django.db import models from django.utils import timezon
from django.db import models
from django.utils import timezone
from django.urls import reverse
from django.contrib.auth.models import User
from PIL import Image
class Post(models.Model):
date_shared = models.DateTimeField(default=timezone.now)
caption = models.TextField(max_length=50)
user = models.ForeignKey(User, on_delete=models.CASCADE)
likes = models.ManyToManyField(User, blank=True, related_name='post_likes') # this line made the error occur
image = models.ImageField(upload_to='post_images')
def __str__(self):
return self.caption
def save(self):
super().save()
img = Image.open(self.image.path)
if img.height > 800 or img.width > 800:
output_size = (800, 800)
img.thumbnail(output_size)
img.save(self.image.path)
def get_absolute_url(self):
return reverse('home')
尝试运行以下命令:
python manage.py migrate --fake
正如您所发现的,我不会浪费时间深入研究该命令的确切功能
这是一篇关于这个主题的好文章:
如果错误仍然发生,则应删除迁移文件夹中的所有文件(除了init.py),然后删除数据库中的所有表
之后只需运行:
python manage.py makemigrations
python manage.py migrate
再说一遍,一切都会好起来的。
但请记住,删除表当然也会丢失这些表中保存的所有数据/查询
让我知道这是否对您有效,因为它以前对我有效过很多次。它没有删除任何内容。我现在应该手动删除它吗?@Poornaka“it”到底是什么意思?@Poornaka好吧,如果命令“python manage.py migrate--fake”不能为您解决问题,那么您应该连接到数据库并通过SQL手动删除表。如果你告诉我你正在使用什么样的SQL-DB,我甚至可以告诉你怎么做。等等……你是说它会删除项目或应用程序中的迁移文件夹吗?(命令)@Poornaka不,仔细阅读。步骤1:删除应用程序中“migrations”文件夹中除“init.py”之外的所有文件。步骤2:手动删除数据库中的所有表。步骤3:重新运行命令“python manage.py makemigrations”和“python manage.py migrate”。