我想创建一个对象实例,我自己在其中设置(不是唯一的)
uid
。我想建议下一个“免费”uid
,因为这是最常用的用例。
class TestForm:
last_uid = Process.objects.order_by("-uid").first().uid
如果我第一次使用该表单,
last_uid
中的值是正确的(假设它是42),但如果我创建第二个实例,last_uid
仍然是相同的值(再次是42,但我希望它43)。我是否必须将 last_uid
交给表单并将其提取到 __init__()
中,以确保在每次新调用表单时正确生成它?
您无法像在Web应用程序中那样在表单构造函数中设置uid,请求是并行的,因此如果request1加载表单,则uid为42,但如果用户发布表单的速度比request2慢,那么您将有2条记录42.
正确的做法是在
save
之前的模型 super.save(*args,**kwargs)
函数中,尽可能接近记录插入操作。