Django:使用类字段的字符串格式

时间:2018-09-07 17:57:30

标签: python django

我想将照片上传到其他目录。目录名称应在模型类字段中具有 title 。我尝试过:

image = models.ImageField(upload_to=f"image/posts/{title}")

它创建了这个:

Upload path

我想在获得<django.db.models.fields.CharField>的地方查看帖子的标题。

如何从该字段获取文本。要设置文本,我使用了Django管理面板。

models.py

class Post(models.Model):
    # ...
    title = models.CharField(max_length=250)
    image = models.ImageField(upload_to=f"image/posts/{title}")

为澄清起见:在我的图片字段中,设置了上传地址。每个帖子的此地址都不同。每个帖子一个目录。目录名称应为title字段的值。

1 个答案:

答案 0 :(得分:1)

要获取要将图像上传到的Post实例的title值,upload_to必须是callable。该可调用对象将实例作为参数接收,然后可以获取标题。

类似这样的东西:

def post_image_path(instance, filename):
    title = instance.title
    return f"image/posts/{title}/{filename}"

class Post(models.Model):
    # ...
    title = models.CharField(max_length=250)
    image = models.ImageField(upload_to=post_image_path)