【发布时间】:2016-05-20 08:56:54
【问题描述】:
我怎样才能设置像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_savesignal,它会生成随机的 10 位数字,然后检查唯一性,但这可能是非常耗时的解决方案。
【问题讨论】:
标签: django django-models