【发布时间】:2018-04-29 12:25:41
【问题描述】:
我有一个用于存储文档编号的模型,其中要填写的字段是文档、前缀、后缀、长度和开始。我可以这样做,但是在填写完这些数据后,我需要在表格中显示预览字段,并且预览字段基于前缀、后缀和长度。
我的意思是,如果我将前缀填写为 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):
【问题讨论】:
-
另外我只是想补充一点,如果您决定使用覆盖
save()方法的方法,那么请小心使用bulk_create()等函数,因为它不会调用@ 987654327@. -
感谢您的提示
标签: python django python-3.x django-models