1

我的模型中有这个图像字段

foto = models.ImageField(upload_to="user/%Y/%m/%d",default='')

在我的设置中:

MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
MEDIA_URL = "/media/"

在我的模板中:

<img class="profilfoto" src="{{MEDIA_URL|escapejs}}{{user.foto.name}}" />

其他图像upload_to='.'正在保存到媒体文件夹中,但user没有创建文件夹,这是为什么?

我运行了 syncdb 和 schemamigration,一切正常,但加载此图像会出现 404 错误,因为路径不存在。我的错误是什么?

4

2 回答 2

1

转义

转义字符以在 JavaScript 字符串中使用。这不会使字符串在 HTML 中安全使用,但在使用模板生成 JavaScript/JSON 时确实可以保护您免受语法错误的影响。

<img class="profilfoto" src="{{MEDIA_URL|escapejs}}{{user.foto.name}}" />

您上面的代码导致,例如:user/2013\u002D04\u002D10_170411/image.png,在加载此图像时给您 404 错误。

更新:

保存或更新图像时,必须在表单中定义 enctype。这将允许您保存图像或文件:

<form id="registerform" action="/angemeldet/" method="post" 
    enctype="multipart/form-data">
    {% csrf_token %}

form = YourForm(request.POST, request.FILES)
    if form.is_valid():
于 2013-04-11T10:18:48.350 回答
-1

尝试在upload_to 中的参数开头添加一个斜线:

foto = models.ImageField(upload_to="/user/%Y/%m/%d",default='')
于 2013-04-11T09:12:16.547 回答