如何设置id
之类的东西,这些东西在创建对象后会是唯一的并生成?
我想为每个对象分配标识符,以便user
可以通过此ID识别产品,但我不希望它是常规的自动增量ID,因为我希望它可以说包括10位数。 (我的pk'是1,2...inf
)。
到目前为止,我所做的是我尝试创建名称的哈希,但这并不是一个好方法。
class Job(models.Model):
job_id = models.BigIntegerField() # or hash(something)
customer = models.ForeignKey(User, related_name='orders', help_text=_("Customer"), on_delete=models.CASCADE)
translator = models.ForeignKey(User, related_name='jobs', null=True, blank=True, help_text=_(u"Translator"))
price = models.FloatField(null=True, blank=True, help_text=_(u"Price"))
一种可能的方法是创建一个post_save
signal
,它会生成随机的10位数字,然后检查其唯一性,但这可能是非常耗费的解决方案。