我的Django模型:如何在django中添加ForeignKey時使用phpmyadmin更新數據庫?
#models.py
class m1(models.Model):
some_word = models.CharField()
我做分貝「manage.py執行syncdb」命令,然後添加一個ForeignKey字段添加到模型
#models.py
from django.contrib.auth.models import User
class m1(models.Model):
some_word = models.CharField()
user = models.ForeignKey(User)
據我所知,本地Django不提供數據庫修改,所以我需要手動創建列「user_id」。好吧,我去phpmyadmin並創建此列。在這一刻,一切都很好,應用程序的作品。但後來我明白,我需要選擇「空白=真」在用戶現場:
#models.py
from django.contrib.auth.models import User
class m1(models.Model):
some_word = models.CharField()
user = models.ForeignKey(User, blank = True)
雖然保存任何M1的對象,我得到了錯誤「無法分配無:‘m1.user’不允許空值」。我知道,如果我刪除表並使用syncdb製作,一切都會好起來的,如果我使用像South這樣的遷移工具,它也可以。但我想了解這個機制,並發現,db有什麼問題。
我稱之爲 'manage.py sqlall應用程序',它告訴 'CREATE TABLE' 和創建索引:
CREATE INDEX `app_m1_a703c35a` ON `app_m1` (`user_id`);
ALTER TABLE `app_m1` ADD CONSTRAINT `user_id_refs_id_5b1b34cc`
FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`);
好吧,我去phpMyAdmin的,做這個SQL的東西(坦白地說,我不知道這些索引做什麼)。 但是錯誤仍然發生。我該怎麼辦?