想知道每次使用 form.save()
创建新帐户时,Django 中插入一些默认数据库数据的最佳方法是什么。
假设用户刚刚创建了一个新的商家资料帐户,我想在 form.save()
之后预加载使用新商家 ID 和今天日期自定义的数据(这样我就有了可用的新帐户 ID)。
显然,我可以使用硬编码方法并编写 10 行 Model.objects.create(...)
并完成它,但我想知道什么是“正确的” Django/pythonic 方式通过 JSON 固定文件等来做到这一点。
最佳答案
如果您只关心创建一个 id,您可以拥有一个允许为空的字段和自动 id 字段的模型。其他字段也可以有默认值。默认字段选项还允许回调。 例如:-
created_at = models.DateTimeField(default=datetime.now)
查看:https://docs.djangoproject.com/en/1.9/topics/db/models/#field-options
本质上可以使用 form.save() 中的一行代码创建具有所有可为空字段或默认值字段的模型。假设您打算仅创建一个默认模型对象。
至于正确的方法,您可能希望在模型和正确的关系(FK)中使用简单的标志(将业务配置文件记录为事件状态,而默认业务配置文件为非事件状态等),以便用户无法重复创建默认业务配置文件。
关于python - Django默认数据(Fixtures?)在views.py中的form.save()上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377066/