【发布时间】:2018-02-02 20:09:22
【问题描述】:
我有一个模型需要在创建时将 ID 包含在另一个字段中...见下文:
id = models.AutoField(primary_key=True)
ticket_number = models.CharField(max_length=200, blank=True)
brand = models.ForeignKey(Brand, on_delete=models.SET_NULL, null=True)
...
def save(self, *args, **kwargs):
shortname = self.brand.shortname
super(Job, self).save(*args, **kwargs)
self.ticket_number = shortname.upper() + '-' + str(self.id)
super(Job, self).save(*args, **kwargs)
它很好用,并且创建了一个唯一的票号。我是 Django 的新手,但我知道我觉得保存帖子两次效率低下。模型有类似 .save(commit=False) 的东西吗?我希望每次保存只保存一次。
【问题讨论】:
-
这根本没有意义。如果它存在,它会做什么?无论如何,数据库都负责设置 id 那么这有什么帮助呢?