【发布时间】:2021-06-21 08:54:44
【问题描述】:
我正在尝试添加 slug,以便帖子的标题出现在 url 中,但我在控制台上收到此消息:
You are trying to add a non-nullable field 'slug' to post without a default; we can't do that Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
models.py
class Post(models.Model):
title = models.CharField(max_length=100)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
self.slug = self.slug or slugify(self.title)
super().save(*args, **kwargs)
【问题讨论】:
-
我现在收到此错误“django.db.utils.IntegrityError: UNIQUE constraint failed: new__blog_post.slug”
-
这能回答你的问题吗? Updating django models
-
如何“填充现有行”?这是 Celcuk 答案的第 3 步,因为它已成功迁移,但在删除 'null=True' 后显示相同的错误
-
您必须输入现有行所需的值,或者可能编写脚本来为您更新值。对于现有行的 slug 应该是什么,没有一个内置的想法。