提交值后更新预览字段

时间:2017-11-16 04:30:18

标签: python django python-3.x django-models

我有一个用于存储文档编号的模型,其中要填充的字段是文档,前缀,后缀,长度和开始。我可以这样做,但在填写这些数据后,我需要在表格中显示预览字段,预览字段基于前缀,后缀和长度。

我的意思是说,如果我将前缀填充为1,后缀为-2345,长度为4,那么预览应该是该文档的

1xxxx-2345

如果前缀为he-,后缀为-7459,长度为5则预览应为

he-xxxxx-7459

这可以通过以下逻辑

完成
preview = str(prefix)+(('x')*length)+str(sufix)

但我怎样才能在django中实现它。我是否必须使用信号或覆盖保存方法?请问有人能给我一个想法吗?

这是我的模特

class DocumentNumbering(models.Model):
    office = models.OneToOneField(OfficeSetup, blank=True, null=True)
    document = models.OneToOneField(Document blank=False, null=False)
    prefix = models.CharField(max_length=100, blank=True, null=True)
    sufix = models.IntegerField(blank=True, null=True)
    start_number = models.PositiveIntegerField(
        default=0, blank=False, null=False)
    length = models.PositiveIntegerField(default=0, blank=False, null=False, validators=[
                                         MaxValueValidator(10), MinValueValidator(1)])

    // not sure where to implement the logic for preview
    def save(self, *args, **kwargs):

1 个答案:

答案 0 :(得分:1)

您真的需要将其存储在数据库中吗?如果它仅用于显示目的,您可以使用派生属性:

@property
def preview(self):
    return str(self.prefix)+(('x')*self.length)+str(self.sufix)