我想在用戶上載圖片時在我的upload_to目錄路徑中包含用戶名。以下是我目前有 -在ImageField中獲取用戶名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',)
我該如何獲得USERNAME
在模型中能夠設置upload_to路徑?
這是正確答案的問題。但是,我會建議用戶的用戶名,而不是用戶名。你永遠不知道什麼時候你需要修改一個用戶名,這可能會帶來一些令人頭疼的問題。 – JeromeParadis 2012-08-14 21:04:12
@JeromeParadis有一個使用id的問題,正如文檔所說:「在大多數情況下,這個對象還沒有被保存到數據庫中,所以如果它使用默認的AutoField,它可能還沒有它的值主鍵字段「。 https://docs.djangoproject.com/zh/dev/ref/models/fields/#django.db.models.FileField.upload_to – Caumons 2013-09-19 10:18:39
@Caumons好點。在這種情況下,我假設UserProfile實例已保存,並且在另一個步驟中創建了頭像。在任何情況下,我認爲我的初始點有點模糊,因爲無論圖像保存在哪裏,路徑都存儲在ImageField對象中。唯一的問題是,如果允許更改用戶名,您將在圖像路徑和用戶名之間失去某種完整性。 – JeromeParadis 2013-11-15 15:52:36