如何基于Django模型上的其他字段为字段生成值?

时间:2020-03-05 08:40:22

标签: django django-models

我想基于name字段为file字段生成一个值。

class Files(models.Model):
    name = models.CharField(max_length=100, blank=True, null=True)
    file = models.FileField(
        upload_to=settings.RAW_IMAGE_UPLOAD_PATH,
        null=True,
        max_length=500
    )

    def name(self):
        return os.path.basename(self.file.name)

    def __str__(self):
        return self.name

进行一些序列化/反序列化时我不成功。

1 个答案:

答案 0 :(得分:1)

如果要为要上传的文件添加名称。


class Files(models.Model):
    name = models.CharField(max_length=100, blank=True, null=True)
    file = models.FileField(
        upload_to=settings.RAW_IMAGE_UPLOAD_PATH,
        null=True,
        max_length=500
    )

    def save(self, *args, **kwargs):
        if self.name is None or self.name == '':
            self.name = os.path.basename(self.file)
        super().save(*args, **kwargs)