我有一个用于存储文档编号的模型,其中要填充的字段是文档、前缀、后缀、长度和开始。我可以这样做,但填充这些数据后,我需要在表中显示预览字段,并且预览字段基于前缀、后缀和长度。
我的意思是说,如果我将前缀填写为 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):
最佳答案
您真的需要将其存储在数据库中吗?如果只是为了显示目的,您可以使用派生属性:
@property
def preview(self):
return str(self.prefix)+(('x')*self.length)+str(self.sufix)
关于python - 提交值后更新预览字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47321634/