我有一个用于存储文档编号的模型,其中要填充的字段是文档,前缀,后缀,长度和开始。我可以这样做,但在填写这些数据后,我需要在表格中显示预览字段,预览字段基于前缀,后缀和长度。
我的意思是说,如果我将前缀填充为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):
答案 0 :(得分:1)
您真的需要将其存储在数据库中吗?如果它仅用于显示目的,您可以使用派生属性:
@property
def preview(self):
return str(self.prefix)+(('x')*self.length)+str(self.sufix)