gpt4 book ai didi

Django,模型的 "default"参数的随机化

转载 作者:行者123 更新时间:2023-12-04 05:01:23 26 4
gpt4 key购买 nike

我想将我的促销模型的promotion_code部分的“默认”值设置为随机生成的字符串,因为使用了code_generate函数。

下面的代码问题似乎是default=code_generate()在每个服务器启动后都会生成此随机字符串,从而分配相同的值。我可以在管理面板上看到,每次我尝试生成一个新的Promotion时,它都会为我提供完全相同的字符串。

#generate a string, which is not already existing in the earlier Promotion instances
def code_generate():
while 1:
from django.conf import settings
import random, string
prom_code = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(6))
try:
Promotion.objects.get(promotion_code=prom_code)
except:
return prom_code

class Promotion(models.Model):
purchase = models.ForeignKey('Purchase')
promotion_code = models.CharField(max_length=20,unique=True,default=code_generate())

我如何使其随机?

问候

最佳答案

您需要将可调用对象传递为default,而不是调用可调用对象:

promotion_code = models.CharField(max_length=20,unique=True,default=code_generate)

关于Django,模型的 "default"参数的随机化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com