我正在创建一个页面,您可以在其中添加客户并提供一些有关他们的信息。我想为每个客户分配一个唯一的 ID。当然,我自己输入基本信息,但我还需要表单中的一个字段,该字段已填充了生成的随机 id,如果它已经存在,则已在数据库中进行检查。如果没有,则将其填写到表单中,如果确实如此,则生成一个新的,直到找到未使用的为止。
模型.py
class Opretkunde(models.Model):
Fornavn = models.CharField(max_length=30)
Efternavn = models.CharField(max_length=50)
Telefon = models.IntegerField()
Adresse = models.CharField(max_length=50)
Postnummer = models.IntegerField()
IA = models.CharField(max_length=10)
salgsperson = models.CharField(max_length=150, default="missing")
字段 IA 是应该用随机生成的值自动填充的字段
表格.py
class Opret_kunde_form(ModelForm):
class Meta:
model = Opretkunde
fields = ['Fornavn', 'Efternavn', 'Telefon', 'Adresse', 'Postnummer', 'IA']
视图.py
def index(request):
if request.method == 'POST':
form = Opret_kunde_form(request.POST, request.FILES)
if form.is_valid():
instance = form.save(commit=False)
instance.salgsperson = request.user
instance.save()
return HttpResponseRedirect(reverse('createUser:createUser'))
else:
form = Opret_kunde_form()
return render(request, 'createCustomer.html', {'form': form})
我用来生成值的函数如下所示
def random_with_N_digits(n):
range_start = 10**(n-1)
range_end = (10**n)-1
return randint(range_start, range_end)
我在想一些看起来像这样的东西
Uniquevalue = random_with_N_digits(8)
If Uniquevalue Opretkunde.objects.filter(IA=Uniquevalue).exists()
generate new uniquevalue
check again and if it doesnt exist then insert to form