首页 > 解决方案 > django在upload_to参数上获取字段名

问题描述

我的模型:

class SampleImage(models.Model):
    image1 = models.ImageField(upload_to=image_path)
    image2 = models.ImageField(upload_to=image_path)

我在 image1 上的 upload_to 方法:

def image_path(instance, filename):
    ext = filename.split('.')[-1]
    filename = "some_file_name" + ext

    # Here is question. How can I get 'image1' field name programatically on image_path?
    used_field_name = "image1" #It would be 'image1'     
    return os.path.join('photo/%s/%s' % (instance.__class__.__name__, used_field_name), filename)

如果字段名称是“image2”,used_field_name onimage_path将是image2

如何获取image_path使用位置的字段名称?

标签: pythondjango

解决方案


https://docs.djangoproject.com/en/3.0/topics/files/#using-files-in-models

文档中的示例

class Car(models.Model):
    name = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    photo = models.ImageField(upload_to='cars')

>>> car.photo.name
    'cars/chevy.jpg'

推荐阅读