【问题标题】:django set media path to default image in modeldjango 将媒体路径设置为模型中的默认图像
【发布时间】:2014-11-13 12:38:51
【问题描述】:

我的项目结构:

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 方法,这样重复文件名就不会出错。当用户更改他们的个人资料图片时,我希望将图片保存在同一目录中。

需要帮助....

【问题讨论】:

    标签: django image filefield


    【解决方案1】:

    您可能应该做的是使用 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';" />
    

    【讨论】:

      猜你喜欢
      • 2020-07-09
      • 1970-01-01
      • 2016-05-14
      • 2015-03-14
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多