django - Django中的自定义主键
问题描述
所以我正在创建一个名为“电子参考库”(ERL)的项目。我正在使用 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 字母字符串。 - where
YYMMDD-HHMMSS
替换为当前日期和时间。 - 用任何随机整数替换
00
(甚至可以是 5 个整数,不用担心)。
但我不知道如何拥有由 Django 自动生成的自定义主键。
这可能吗?如果没有,还有其他更好的选择吗?
任何帮助将不胜感激。
谢谢!