【发布时间】:2020-07-26 00:19:50
【问题描述】:
我有以下型号:
title = models.CharField(max_length=100)
description = 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})
class Ingredient(models.Model):
ingredients_recipe = models.ForeignKey(Post, on_delete=models.CASCADE)
type = models.CharField(max_length=50)
quantity = models.IntegerField()
measurement = models.CharField(max_length=50)
class MethodStep(models.Model):
methods_recipe = models.ForeignKey(Post, on_delete=models.CASCADE, null=True)
step = models.TextField()
当我尝试运行 makemigrations 时,Ingredient 类没有错误,但在 MethodStep 类上我收到错误消息:
您正在尝试在没有默认值的情况下将不可为空的字段“methods_recipe”添加到方法步骤;我们不能这样做(数据库需要一些东西来填充现有的行)。
有人可以帮助我吗?我不确定这些类中的每一个有什么不同,这意味着MethodStep 有错误但Ingredient 没有。
编辑:我也尝试过删除/清除/删除数据库,但每次运行 makemigrations 时错误仍然存在。
【问题讨论】:
-
您有一个现有的数据库,现在您添加了一个不可为空的新字段。您在表中的现有记录必须将 something 放入新字段 - 这是它要求的默认值。这可能会有所帮助stackoverflow.com/questions/29787853/…
-
@PatrickArtner,应该在上面添加,我已经尝试删除和清除数据库,但同样的错误仍然存在。
-
django 怎么知道数据库是空的?
标签: python django django-models