我有一个这样的模型:
from django.db import models
class House(models.Model):
address = models.CharField(max_length=200)
price = models.CharField(max_length=200)
class Inhabitant(models.Model):
home = models.ForeignKey(House, blank=True, null=True, on_delete=models.SET_NULL)
name = models.CharField(max_length=200)
age = models.IntegerField()
然而,在运行python manage.py sql my_test_app
时,我最终得到了这个:
ALTER TABLE `my_test_app_inhabitant`
ADD CONSTRAINT `house_id_refs_id_7cd928c7`
FOREIGN KEY (`home_id`)
REFERENCES `my_test_app_house` (`id`);
这意味着我不能在没有房子的情况下添加居民 - 我该如何解决这个问题呢?
答案 0 :(得分:2)
外键并不意味着你不能在没有房子的情况下添加居民。
约束说:'如果Inhabitant.house包含一个值,那么这个值必须出现在House模型中。
要验证数据库允许居住的居民,您应该检查房屋字段居民表是否允许NULL值。