python - Django 模型中的类属性继承

标签 python django django-models

有两种模式:

class BaseImage(models.Model):
    description = models.CharField(max_length=200)
    image = models.ImageField(upload_to='images')

    class Meta:
        abstract = True

class PostImage(BaseImage):
    in_text = models.BooleanField()

    def __init__(self, *args, **kwargs):
        super(BaseImage, self).__init__(*args, **kwargs)
        self.image.upload_to = 'images/news/%Y/%m/%d'

如何在基础模型中设置 upload_to 属性?这是我的尝试不起作用:

        self.image.upload_to = 'images/news/%Y/%m/%d'

最佳答案

我可以建议的是编写函数以从实例上传到方法,例如

在模型中

#default method to get file upload path
def get_upload_to(instance, filename):
    return instance.get_upload_to_path(filename)

class BaseImage(models.Model):
    description = models.CharField(max_length=200)
    image = models.ImageField(upload_to=get_upload_to)

    class Meta:
        abstract = True
    #method on the class to provide upload path for files specific to these objects
    def get_upload_to_path(instance, filename):
         return 'images/'+filename

class PostImage(BaseImage):
    in_text = models.BooleanField()

    #method to provide upload path for PostImage objects
    def get_upload_to_path(instance, filename):
    #change date.year etc to appropriate variables
         return 'images/news/%Y/%m/%d' % (date.year, date.month, date.day)

关于python - Django 模型中的类属性继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12347420/

相关文章:

python - Django ·奥斯卡获得最便宜的报价

python - 使用 boto,在 s3 上已经存在的文件上设置 content_type

python - 转义包含在某些 html 标签中的引号

python - Pandas 修改数据集,使两个分类具有相同的值

python - 如果 (b,a) 存在,则从 python 元组列表中删除 (a,b)

django - 如何在django分页中实现Post/Redirect/Get?

python - 是否可以通过 django-cassandra-engine 连接到多个集群?

python - 在 Django 中测试重写的 save 方法

django - 如何从 Django View 中的模型访问数据?

python - 使用Django登录后获取用户信息