我目前在这样的模型的下拉菜单中提供选择:
class FoodType(models.Model):
type = models.CharField(max_length=30, unique=True)
def __unicode__(self):
return self.type
class Food(models.Model):
name = models.CharField(max_length=30, unique=True)
type = models.ForeignKey(FoodType)
def __unicode__(self):
return self.name
我这样做而不是硬编码选择,因为我想在部署应用程序后通过管理员提供添加/删除/更改FoodTypes的选项。但后来我才意识到,如果FoodType被删除,食物依赖,那么食物也会被删除,这是我不想要的。我希望能够保留所有食物记录,除非我明确要删除它。
还有更好的方法可以让用户通过管理员修改FoodTypes吗?
谢谢:)
答案 0 :(得分:1)
您可以将ForeignKey
字段的on_delete
参数设置为不同于CASCADE
的值(默认值)。
例如:
type = models.ForeignKey(FoodType, null=True, on_delete=models.SET_NULL)