我想创建一个对象示例,我自己设置(不是唯一的)somenotuniquenumber
。我想建议下一个“免费”somenotuniquenumber
,因为这是最常用的用例。
class TestForm:
last_somenotuniquenumber = Process.objects.order_by("-somenotuniquenumber").first().somenotuniquenumber
字符串
如果我第一次使用last_somenotuniquenumber
中的值是正确的,(假设它是42),但是如果我创建第二个示例,last_somenotuniquenumber
仍然是相同的值(又是42,但我希望它是43).我是否必须将last_somenotuniquenumber
提交给表单并将其提取到__init__()
中,以确保在表单的每次新调用时都正确生成它?
2条答案
按热度按时间qnakjoqk1#
你不能像在web应用程序中那样在表单构造函数中设置uid,请求是并行的,所以如果request1加载表单,那么uid是42,但是如果用户在提交表单时比request2慢,那么你将有2条记录为42。
正确的做法是把这个到模型
save
函数之前的super.save(*args,**kwargs)
尽量靠近记录插入操作。blmhpbnm2#
对于完整性和其他用户:
字符串
这可以用来创建一个具有连续编号的示例。请注意,他不知道此时可能运行的并行进程!