Python django模型中的外键默认值

Python django模型中的外键默认值,python,django,model,foreign-keys,default,Python,Django,Model,Foreign Keys,Default,我正在用django启动一个应用程序;到目前为止我很喜欢它,但我在初始化数据库时遇到了麻烦。总之,我需要一个表用户和一个表角色;用户具有FK to角色。创建时,用户必须明确设置此角色,或默认为默认角色“常规用户” 我可以在没有数据库的情况下创建模型,然后手动创建角色,然后添加默认值并迁移;但这看起来并不好;我尝试在两个模型定义之间添加到数据库中,但显然它不起作用,因为表不是在makemigration命令期间创建的 有什么方法可以实现我想要的吗?这是我目前的模式,如果它有帮助;请随意报告这方面的

我正在用django启动一个应用程序;到目前为止我很喜欢它,但我在初始化数据库时遇到了麻烦。总之,我需要一个表用户和一个表角色;用户具有FK to角色。创建时,用户必须明确设置此角色,或默认为默认角色“常规用户”

我可以在没有数据库的情况下创建模型,然后手动创建角色,然后添加默认值并迁移;但这看起来并不好;我尝试在两个模型定义之间添加到数据库中,但显然它不起作用,因为表不是在makemigration命令期间创建的

有什么方法可以实现我想要的吗?这是我目前的模式,如果它有帮助;请随意报告这方面的任何不合理之处;我在学习。Thx;)


您可以尝试在用户创建时发出保存角色的信号

理想情况是:当用户创建时,检查用户是否具有角色。如果没有,则为其添加默认角色。 每次尝试创建用户时,它都会起作用。 例如:


您可以尝试在用户创建时发出保存角色的信号

理想情况是:当用户创建时,检查用户是否具有角色。如果没有,则为其添加默认角色。 每次尝试创建用户时,它都会起作用。 例如:


如果数据库需要初始数据,可以使用和

Dumpdata(仅在首次将角色手动添加到数据库后使用)

迁移时,可以使用:

加载数据

$  python manage.py migrate myapp && python manage.py loaddata mydata.json

如果数据库需要初始数据,可以使用和

Dumpdata(仅在首次将角色手动添加到数据库后使用)

迁移时,可以使用:

加载数据

$  python manage.py migrate myapp && python manage.py loaddata mydata.json

这将适用于新添加的用户;但我在snipet中添加的这三个角色与应用程序的核心息息相关;它们是应用程序正常运行所必需的,所以我希望它们在我第一次启动应用程序时位于数据库中。我看过数据迁移,但它似乎只用于测试。这将适用于新添加的用户;但我在snipet中添加的这三个角色与应用程序的核心息息相关;它们是应用程序正常运行所必需的,所以我希望它们在我第一次启动应用程序时位于数据库中。我看过数据迁移,但它似乎只用于测试。如果需要向数据库添加数据,可以使用和。可能通过运行
migrate&&loaddata
如果需要向数据库添加数据,可以使用和。可能通过运行
migrate&&loaddata
mkdir myapp/fixtures
python manage.py dumpdata myapp --indent=2 --output=myapp/fixtures/
mydata.json
$  python manage.py migrate myapp && python manage.py loaddata mydata.json