0

请检查Required Json Here 我想使用抽象模型将自定义字段添加到HistoricalRecords。我想显示带有附加字段“replaced_with”的历史记录。每个文件历史记录应该告诉它被哪个文件替换。

models.py:
class AdditionalFileHistory(models.Model):
    replaced_with = models.CharField(
        max_length=100,
        null=True,
        blank=True,
        verbose_name=_('replaced by')
    )

    class Meta:
        abstract = True

class ReviewFile(models.Model):
    review = models.OneToOneField(
        Review,
        verbose_name=_('review'),
        on_delete=models.CASCADE,
        related_name='files'
    )
    file = models.FileField(
        upload_to='documents/%Y/%m/%d',
        null=True,
        blank=True,
        verbose_name=_('file')
    )
    filename = models.CharField(
        max_length=100,
        null=True,
        blank=True,
        verbose_name=_('filename')
    )
    
   
    history = HistoricalRecords(bases=[AdditionalFileHistory, ], cascade_delete_history=True)

    class Meta:
        verbose_name_plural = 'Files'

    def __str__(self):
        return f'Review Step  {self.file.name}'

signals.py:

@receiver(pre_create_historical_record)
def pre_create_historical_record_callback(sender, **kwargs):
    history_instance = kwargs['history_instance']
    source_instance = kwargs['instance']
    history_instance.replaced_with = source_instance.filename

它给出了当前文件历史记录,但我们需要将以前的文件替换为历史记录中的当前文件,如下所示:

4

0 回答 0