我有一個使用我定義的User類很好地工作的應用程序。經過幾個星期的工作,我意識到我需要用戶身份驗證,並決定使用django的User類(我真的不明白這是如何工作的,因爲我對Django非常陌生)。我擺脫了我ForeignKey的關係到我的自定義用戶類,並增加了一個ForeignKey關係django.contrib.auth.models.User
,但現在當我使用管理頁面中添加一個新的對象,我得到:Django IntegrityError 1452
Exception Type: IntegrityError at /admin/po/purchaseorder/add/
Exception Value: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`po`.`po_purchaseorder`, CONSTRAINT `django_user_id_refs_id_fe5f38af` FOREIGN KEY (`django_user_id`) REFERENCES `auth_user` (`id`))')
我真的不理解這個錯誤。下面是相關的類代碼:
from django.contrib.auth.models import User
class PurchaseOrder(models.Model):
user=models.ForeignKey(User)
request_number = models.AutoField(primary_key=True)
#More fields
誰能給我任何解釋這個錯誤,爲什麼我得到它,現在我使用的是內置的用戶,而不是我自己的類?
您是否在更改'FK'類型後進行遷移? – karthikr
不,我沒有。剛剛刪除數據庫並重新創建它(我正處於開發階段,因此沒有任何真正的數據需要擔心)。 –
然後刪除數據庫模式並使用'syncdb'重新創建它。你可能會更好地瞭解'django-south'的工作方式,因爲它被廣泛用於處理syncdb – karthikr