Здравствуйте!
Есть модель данных под названием
"Function". В модели Function есть поле
"symbol".
При создании нового объекта, то есть новой записи пользователь через модельное окно вводит название (поле "name") функции, а поле "symbol" необходимо генерировать, а точнее создавать значение автоматически буквами из латинского алфавита по возрастанию и учитывать есть ли такой символ уже.
Внизу вы можете для наглядности удивить пример того, что именно должно получиться. На данный момент у меня получилось только сделать от A до Z и проверить есть ли функция с таким символом, а как дальше получать последующие значения не могу додумать. Помогите построить алгоритм.
Например:A
B
-
Z
AA
AB
-
AZ
BA
BB
-
BZ
-
ZZ
AAA
AAB
и так далее
models.py:class Function(models.Model):
id= models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
name = models.CharField(max_length=250)
symbol = models.TextField ()
def __str__(self):
return self.name
views.py:if form.is_valid():
for i in string.ascii_uppercase: # (A-Z)
if not Function.objects.filter(symbol=i, project=project_code).exists():
function = form.save(commit=False)
function.symbol = i
function.save()
break