from django.contrib.auth.models import User from django.db import models from django.utils.translation import ugettext_lazy as _ from apps.map.models import CaseStudy, CaseStudyDraft class BaseFile(models.Model): file = models.FileField( upload_to='.', ) user = models.ForeignKey( User, related_name='%(class)s', on_delete=models.PROTECT, ) class Meta: abstract = True def __str__(self): return self.file.name def name(self): return self.file.name class File(BaseFile): pass class ImageFile(BaseFile): caption = models.CharField( verbose_name=_("Image caption"), max_length=240, blank=True, ) credit = models.CharField( verbose_name=_("Image credit"), max_length=240, blank=True, )