每次使用form.save()创建新帐户时,想知道Django中插入一些默认数据库数据的最佳方法是什么。

假设用户刚刚创建了一个新的业务资料帐户,我想预加载使用新的业务ID和今天日期在form.save()之后的自定义数据(因此,我可以使用新的帐户ID)。

显然,我可以使用硬编码方法并编写10行Model.objects.create(...)并完成此操作,但是我想知道通过JSON夹具文件等方法执行此操作的“正确” Django / pythonic方法是什么。

最佳答案

如果您只关心创建一个id,则可以有一个模型,其中包含允许为null的字段和auto id字段。其他字段也可以具有默认值。默认字段选项还允许回调。
例如:-

created_at = models.DateTimeField(default=datetime.now)


看:https://docs.djangoproject.com/en/1.9/topics/db/models/#field-options

具有所有可为空字段或默认值字段的Model本质上可以使用form.save()中的一行代码来创建。假设您打算仅创建一个默认模型对象。

至于正确的方法,您可能希望在模型和正确的关系(FK)中使用简单的标志(将业务资料记录为活动状态,将默认的活动状态记录为非活动状态等),以使用户无法重复创建默认的业务资料。

关于python - Django默认数据(Fixtures?)在form.save()上的views.py中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36377066/

10-12 17:52
查看更多