我的项目结构:
MyProject/
App1/
App2/
MyProject/
Static/
uploads/
image.jpeg/
在我的设置中,我有:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
MEDIA_ROOT = os.path.join(BASE_DIR, '/static/uploads/')
我想将image.jpeg设置为默认个人资料图片
我的模特:
def get_upload_file_name(instance, filename):
return "uploads/{}_{}".format(str(time()).replace('.','_'), filename)
class User(AbstractBaseUser, PermissionsMixin):
thumbnail = models.FileField(upload_to=get_upload_file_name, default="image.jpeg")
这里我编写了一个方法get_upload_file_name,以便重复文件名不会出现任何错误。当用户更改其个人资料图片时,我希望将图像保存在同一目录中。
需要帮助......
答案 0 :(得分:0)
您应该做的是使用Python为每个上传的个人资料图片创建一个新的用户名目录。这样,如果他们上传多个,每个都会覆盖最后一个。
至于显示默认图像,我会说你应该在你的模板中这样做。
{% if username.image == "" %}http://www.yoursite.com/your_image.jpeg{% else %} username.image {% endif %}
另一种方法是使用Javascript检测未找到的图像并显示默认值。
<img src="image.png" onError="this.onerror=null;this.src='/images/noimage.gif';" />