我有一个带有用户身份验证系统的基于 django 的网站。有一个模型(比如 A),其属性文件名必须是唯一的。单击网页上的某个按钮时,其中一个 python 视图执行以下操作
file=randomNameX()
a=A(filename=file)
a.save()
def randomStringX(length):
s = ''
letters = "0123456789abcdefghijklmnopqrstuvwxyz"
while len(s) < length:
s += letters[random.randint(0, len(letters)-1)]
return s
def randomNameX():
name = randomString(10)
while A.objects.filter(filename="_"+name).count() > 0:
name = randomString(10)
return name
是否有可能两个用户(用户 1 和用户 2)可能同时生成相同的文件名,并且数据库条目首先发生在用户 1 中,并且由于属性是唯一的,因此会为用户 2 引发异常?
如果是,请告诉我如何克服这个问题。