class ReportPayload(models.Model):
b64content = models.TextField(blank=False, null=False, editable=False)
hsh = models.CharField(blank=False, null=False, editable=False)
format = models.CharField(max_length=50, null=False, blank=False)
report = models.ForeignKey(PrettyReport, related_name='payloads')
def _get_content(self):
assert self.hsh == sha.new(self.b64content).digest(), "Content seems to be corrupted"
return base64.b64decode(self.b64content)
def _set_content(self, value):
self.b64content = base64.b64encode(value)
self.hsh = sha.new(self.b64content).digest()
content = property(get_content, set_content)