Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django将媒体路径设置为模型中的默认图像_Django_Image_Filefield - Fatal编程技术网

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';" />