Django как создать пользовательский идентификатор
Я пытаюсь создать пользовательский идентификатор для моего проекта, идентификатор должен содержать курс, учебный год, семестр затем возрастающее число, которое начинается с 00
Когда я размещаю что-то подобное в ex. Почтальон
{
"sem": "1",
"sy": "2022-2023",
"studentid": "2019-0478"
"course": "ENGG"
}
он создаст что-то вроде этого
ENGG2022-20231-00
но ошибка говорит django.db.utils.DataError: value too long for type character varying(20)
на данный момент это то, что у меня есть
def get_default_id():
last_CI_id = CourseItem.objects.all().order_by('CI_id').last()
if not last_CI_id:
return str(CourseItem.office) + str(CourseItem.sy) + str(CourseItem.sem) + '00'
Даже если я удалю другие, как return str(CourseItem.office) + '00'
, все равно будет возвращаться та же ошибка
class CourseItem(models.Model):
CI_id = models.CharField(primary_key=True, max_length=20, default=get_default_id)
studentid = models.CharField(max_length=9, blank=True, null=True)
course = models.ForeignKey('Course', models.DO_NOTHING, blank=True, null=True)
sem = models.CharField(max_length=1, blank=True, null=True)
sy = models.CharField(max_length=9, blank=True, null=True)
Надеюсь, кто-нибудь сможет помочь, и если это не сработает, по крайней мере, может ли у меня быть какое-то альтернативное решение этой проблемы