2011-12-05 45 views
0

我有这样一个模型:在运行时python manage.py sql my_test_appDjango MySQL如何停止外键约束?

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() 

但是我得到这个结尾:

ALTER TABLE `my_test_app_inhabitant` 
ADD CONSTRAINT `house_id_refs_id_7cd928c7` 
FOREIGN KEY (`home_id`) 
REFERENCES `my_test_app_house` (`id`); 

这意味着没有房子我不能添加的居民 - 我怎么能解决这个问题?

+2

你自己在home中定义它 - models.ForeignKey(...):) – favoretti

回答

2

外键并不意味着你不能添加没有房子的居民。

约束条件说:'如果Inhabitant.house包含一个值,那么这个值必须出现在House模型中。

要验证数据库允许居民与你的房屋你应该检查房屋现场居民表允许NULL值。