2011-12-05 23 views
0

私はこのようなモデルがあります:python manage.py sql my_test_appを実行している場合しかし、Django 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に値が含まれている場合、この値が「ハウスモデル」に表示されている必要があります。

データベースがあなたと一緒に住人を許可することを確認するには、住宅のテーブルinhabitantテーブルがNULL値を許可することを確認する必要があります。

関連する問題