Пользовательский первичный ключ в Django
Итак, я создаю проект под названием "Электронная справочная библиотека" (ЭСБ). Я использую Django 3.2 для создания этого приложения, и вот модель таблицы Resource
.
class Resource (models.Model):
resource_id = models.CharField(primary_key=True, max_length=20)
type = models.CharField(choices=RESOURCETYPE, default="WebLink", max_length=10)
link = models.URLField()
subject = models.ForeignKey(YearGroupSubject, on_delete=models.CASCADE)
topic = models.CharField(max_length=50)
description = models.TextField()
unit_no = models.CharField(max_length=10)
search_query = models.CharField(max_length=300)
status = models.CharField(choices=STATUS, default="Pending", max_length=30)
posted_by = models.ForeignKey(ProfileStaff)
posted = models.DateTimeField(auto_now=True)
approved_time = models.DateTimeField(null=True, blank=True)
views = models.PositiveIntegerField(default=0)
В этом случае мой клиент хотел получить пользовательский первичный ключ, формат которого должен быть примерно таким MATH-YYMMDD-HHMMSS-00
.
- Где
MATH
заменяется первичным ключом таблицы YearGroupSubject, который представляет собой 4-буквенную строку. - Где
YYMMDD-HHMMSS
заменяется текущей датой и временем. - Замена
00
на любое случайное целое число (может быть даже 5 целых чисел, не страшно).
Но я не знаю, как иметь пользовательский первичный ключ, который автоматически генерируется Django.
Возможно ли это? Если нет, есть ли другая лучшая альтернатива?
Любая помощь будет очень признательна.
Спасибо!