django将媒体路径设置为模型中的默认图像
我的项目结构:django将媒体路径设置为模型中的默认图像,django,image,filefield,Django,Image,Filefield,我的项目结构: 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
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,这样重复的文件名就不会有任何错误。当用户更改其配置文件图片时,我希望图像保存在同一目录中
需要帮助……您可能应该使用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';" />