这是我的问题。我有一个模型项目,其中有一个引用字段。当创建一个新的项目实例时,我需要将年份的最后两位数加一个连字符添加到“quote”字段的开头。防爆。 2010 =“10-”。我只是不太确定如何启动它?
截至目前,我已将“10-”硬编码为预引号字段,但我不想这样做。
models.py
class Project(models.Model):
client = models.ForeignKey(Clients, related_name='projects')
created_by = models.ForeignKey(User, related_name='created_by')
#general information
proj_name = models.CharField(max_length=255, verbose_name='Project Name')
pre_quote = models.CharField(max_length=3,default='10-')
quote = models.IntegerField(max_length=10, verbose_name='Quote #', unique=True)
desc = models.TextField(verbose_name='Description')
starts_on = models.DateField(verbose_name='Start Date')
completed_on = models.DateField(verbose_name='Finished On')
之前有人必须这样做吗?或者有任何建议吗?
答案 0 :(得分:1)
试试这个:
def save(self):
today = datetime.date.today()
self.quote = "%s-%s" % (str(today.year)[2:4], self.quote)
假设您导入了日期时间。
答案 1 :(得分:0)
您现有的引用字段设置为整数。您需要将其设置为文本字段。完成后,您可以覆盖save()函数,将“10-”添加到字段中。
class Project(models.Model):
client = models.ForeignKey(Clients, related_name='projects')
created_by = models.ForeignKey(User, related_name='created_by')
proj_name = models.CharField(max_length=255, verbose_name='Project Name')
quote = models.TextField(max_length=10, verbose_name='Quote #', unique=True)
desc = models.TextField(verbose_name='Description')
starts_on = models.DateField(verbose_name='Start Date')
completed_on = models.DateField(verbose_name='Finished On')
def save(self):
self.quote = "10-" + self.quote