Как увеличить CharField на 1 в django? - PullRequest
1 голос
/ 27 февраля 2020

Здесь у меня есть поле типа idnumber в моей модели профиля. Это сочетание integer, text и -. Каждый раз, когда регистрируются новые профили, я хочу, чтобы значения - и text были одинаковыми, но я хочу увеличить целое число на 1. Как этого добиться?

 user = get_object_or_404(get_user_model(), pk=pk)
    if request.method == 'POST':
        user_type = request.POST.get('type')
        user.profile.is_approved=True
        user.profile.save()
        if user_type == 'Some Type': # i got stuck here
            latest_profile = Profile.objects.filter(user_type='Some Type').last()
            user.profile.idnumber = latest_profile.idnumber + 1 #this will probably raise the error
            user.profile.save()

Поле модели для номера идентификатора выглядит так

idnumber = models.Charfield(max_length=255,default="ABTX-123") 

ABTX- будет таким же, но нужно увеличить 123 до 124, если новый профиль зарегистрируется

1 Ответ

1 голос
/ 27 февраля 2020

Вы должны установить idnumber, как показано ниже ...

idnumber = int(latest_profile.idnumber.split('-')[1]) + 1
new_idnumber = latest_profile.idnumber.split('-')[0] + '-' + str(idnumber)
user.profile.idnumber = new_idnumber
...