Dav*_*542 8 django django-models django-forms
我希望在用户上传图像时在upload_to目录路径中包含用户名.这是我目前拥有的 -
#model
class Avatar(models.Model):
avatar = models.ImageField(upload_to='images/%s' %(USERNAME) )
user = models.ForeignKey(UserProfile)
#form
class ProfilePictureForm(ModelForm):
class Meta:
model = Avatar
fields = ('avatar',)
Run Code Online (Sandbox Code Playgroud)
如何让USERNAME模型能够设置upload_to路径?
Ism*_*awi 21
upload_to可以是可调用的而不是字符串,在这种情况下,它将传递当前实例和文件名 - 请参阅文档.这样的事情应该有效(instance.user.user因为instance.user是UserProfile,所以instance.user.user是User).
def upload_to(instance, filename):
return 'images/%s/%s' % (instance.user.user.username, filename)
class Avatar(models.Model):
avatar = models.ImageField(upload_to=upload_to)
user = models.ForeignKey(UserProfile)
Run Code Online (Sandbox Code Playgroud)