Django while True try loop в createview

Надеюсь, я не слишком параноидален, но я пытаюсь сделать так, чтобы при наличии записи или номера клиента следующая запись отличалась от предыдущей, причина, по которой я делаю это таким образом, заключается в том, что каждый день будет много людей, собирающих данные в одно и то же время, и я не хочу, чтобы вылетала ошибка 404 или что-то подобное, а наоборот, в случае, если в базе данных уже есть запись, повторить попытку, повторить попытку и еще раз повторить попытку. Это пример, который мне нужно привести, чтобы хорошо закончить мой скрипт, очевидно, до того, как он сделает запрос к базе данных для проверки последней записи.

Я знаю, что это возможно сделать с представлениями на основе функций, но в данный момент я тестирую представления на основе классов, я делаю это уже несколько часов. Любая помощь очень важна для меня. Спасибо, ребята.

models.py

from django.db import models

# Create your models here.

class Empresa(models.Model):
    nombre = models.CharField(max_length=20)
    numero = models.IntegerField(unique=True)

views.py

from dataclasses import field
from django.shortcuts import render
from django.views.generic import *

from aplicacion.models import Empresa

# Create your views here.

class CrearEmpresa(CreateView):
    model = Empresa
    template_name = 'crearempresa.html'
    success_url  = '/crear/'
    fields = ['nombre', 'numero']

    valor = 0
    
    def form_valid(self, form):
        x = form.save(commit=False)
        x.numero = self.valor

        while True:
            try:
                x.save()
                return super().form_valid(form)
                break
            
            except:
                self.valor = self.valor + 1
                pass
Вернуться на верх