我的django模型中有一个图像文件。我在尝试使用 upload_to 强制输出目录时尝试检索图像的路径,但它没有返回正确的路径。
def signatures_path(instance, filename):
return 'signatures/{}/{}'\
.format(instance.id, filename)
class Designation(models.Model):
designation = models.TextField()
user = models.OneToOneField(User)
signature = models.ImageField(upload_to=signatures_path,\
blank=True, null=True, default=None, validators=[validate_png])
Designation.objects.filter(user__username=username).values_list('signature', flat=True)
[u'sig'jpg']
x = Designation.objects.get(user__username=username)
print x.signature.path
/home/me/myapp/myapp/media/sig.jpg
但我希望它是: /home/me/myapp/myapp/media/signature/None/sig.jpg
如何检索正确的路径? 请注意,有一个" 无"路径中的目录似乎没有存储在任何地方。
更新: 问题是因为我保存文件的方式。 我用它来保存它:
Designation.objects.filter(user__username=username).update(signature=signature)
当我将其更改为:
x=Designation.objects.get(user__username=username)
x.signature=signature
x.save()
然后它工作正常。
答案 0 :(得分:1)
您应该使用print x.signature.url
代替print x.signature.path
。它返回文件的绝对路径。