0

我正在创建一个页面,您可以在其中添加客户并提供一些有关他们的信息。我想为每个客户分配一个唯一的 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
4

0 回答 0