我是Django开发的新手,目前正在学习制作博客应用程序的教程。在本教程中,有一个步骤创建一个函数,以允许新用户使用deafult.jpg
作为其化身。
但是,我在那里有一个错字。我没有键入'default.jpg'
,而是键入了'default.jpb'
。
然后我迁移到数据库中。因此,当我运行服务器并对其进行尝试时,尚未设置其头像的新用户正在使用"default.jpb"
而不是"default.jpg"
。
现在,如何更改数据库以使用正确的定义?
发现问题后,我纠正了我的模型中的错字,然后使用以下命令:
python3 manage.py makemigrations (no changes detected)
python3 manage.py migrate (no migrations to apply)
然后,我决定删除项目中的迁移,然后再次进行迁移,我意识到我无法对数据库中已有的内容进行更改。
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
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'
我希望尚未设置头像的新用户正在使用位于项目中的default.jpg。
答案 0 :(得分:1)
问题是您删除了迁移文件。这意味着当您再次运行makemigrations
时,它将被命名为001...
。但是数据库仍将具有在django_migrations
中迁移该文件的记录。
取消删除已删除的迁移并运行makemigrations,然后迁移或编辑数据库并删除从django_migrations
删除的迁移
答案 1 :(得分:0)
运行python3 manage.py makemigrations配置文件,然后运行python3 manage.py migration,这将解决问题