Xta*_*tal 3 python django django-models django-orm
所以我能够使用uuid生成一个随机id到目前为止这么好但是当我尝试数据库时我得到相同的值
def f():
d = uuid4()
str = d.hex
return str[0:16]
Run Code Online (Sandbox Code Playgroud)
class Q(models.Model):
a = models.CharField(max_length=150)
b = models.IntegerField(max_length=25)
c = models.IntegerField(max_length=32 , default=0)
d = models.ManyToManyField(Ans , related_name='aa')
e = models.CharField(max_length=18 , default = f() ,unique=True )
class Ans(models.Model):
sub = models.CharField(max_length=150)
-----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
而且我这样插入
def ins(request):
t =random.randint(0, 1000)
p = Q(a = t , b=0 , c=0)
p.save()
return HttpResponse('Saved')
Run Code Online (Sandbox Code Playgroud)
只是好奇这里到底发生了什么
旁注:如果我设置e.unique = False,在获得新的UUID值之前,我会使用相同的e值获得2-3
ale*_*cxe 12
您不应该调用要传递给的函数default:
e = models.CharField(max_length=18, default=f, unique=True)
Run Code Online (Sandbox Code Playgroud)
根据文档,仅供参考,您应传递一个值或一个可调用的:
字段的默认值.这可以是值或可调用对象.如果可调用,则每次创建新对象时都会调用它.