我想覆蓋模型上的保存方法以便生成唯一的第二個自動遞增ID。重寫保存方法在Django中創建第二個自動遞增字段
創建我的類和重寫保存()方法,但由於某種原因,它示數出來,出現以下錯誤:
TypeError: %d format: a number is required, not NoneType
下面的代碼:
class Person(models.Model):
target = models.OneToOneField(Target)
person = models.OneToOneField(User)
gender = models.CharField(max_length=1)
gender_name = models.CharField(max_length=100)
person_id = models.CharField(max_length=100)
def save(self, *args, **kwargs):
self.person_id = "%07d" % self.id
super(Person, self).save(*args, **kwargs)
是因爲我沒有傳遞一個ID參數,它還沒有保存?無論如何,從ID生成一個值?
只是改變順序..調用超級之前的任務。 – karthikr
此外,使用'post_save'信號代替覆蓋'save()'方法可能會更好。 –
該領域的目的是什麼? –