【发布时间】:2019-11-15 23:12:16
【问题描述】:
在我创建了几个配置文件之后,我想在我的模型配置文件(扩展用户模型)中添加一个 slug 字段,然后在到达配置文件页面时出现错误,其中 url 中的 slug 说:
Django OperationalError: no such column: infrastructure_profile.slug
所以我看了这里,看到this的回答
它建议我删除所有迁移文件以重新启动数据库,所以我这样做了
然后我得到了同样的错误,所以我想我应该删除我已经拥有的所有没有 slug 字段的用户,包括超级用户。
所以我关注了this的回答
我得到了那个错误
django.db.utils.OperationalError: no such column: infrastructure_profile.slug
知道发生了什么吗?
编辑
我的 models.py 包含这样的模型配置文件
class Profile(User):
user = models.OneToOneField(User, parent_link=True, on_delete=models.CASCADE)
bio = models.TextField()
slug = models.SlugField(unique=True, blank=True)
avatar_thumbnail = ProcessedImageField(upload_to='images/',
default='/images/default.png',
processors=[ResizeToFill(300, 300)],
format='JPEG',
options={'quality': 60})
location = models.TextField()
tags = models.ManyToManyField(Tag)
contact_information = models.TextField()
verified = models.BooleanField(default=False)
counter = models.IntegerField(default=0)
def __str__(self):
return self.user.username
def save(self, *args, **kwargs):
print('self.username')
print(self.user.username)
self.slug = self.user.username
super(Profile, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse('infrastructure:edit-user-profile', kwargs={'slug': self.slug})
【问题讨论】:
-
你确定你运行了
python manage.py makemigrations && python manage.py migrate? -
您必须删除所有用户并重新迁移或删除数据库本身并重新迁移
-
@ShakibHossain 是的,我确定
-
@user6837382 我这样做了,但遇到了问题stackoverflow.com/q/58891301/5752406
-
我不能做第一个建议,这就是问题所在......不能删除超级用户,当我做第二个建议时,我得到了链接问题@user6837382
标签: django django-models