我想将照片上传到其他目录。目录名称应在模型类字段中具有 title 。我尝试过:
image = models.ImageField(upload_to=f"image/posts/{title}")
它创建了这个:
我想在获得<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
字段的值。
答案 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)