我正在创建一个页面,您可以在其中添加与客户有关的一些信息的客户。我想为每个客户分配一个唯一的ID。我当然会自己输入基本信息,但是我还需要一个形式为已生成的随机ID的字段,该字段已在数据库中检查(如果已经存在)。如果没有,则将其填写到表单中,如果确实存在,则生成一个新的表单,直到找到未使用的表单为止。
Models.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字段是应该使用随机生成的值自动填充的字段
forms.py
class Opret_kunde_form(ModelForm):
class Meta:
model = Opretkunde
fields = ['Fornavn', 'Efternavn', 'Telefon', 'Adresse', 'Postnummer', 'IA']
views.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})
im用于生成值的函数看起来像这样
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