0

我有一些带有 FileField() 的模型,如下所示:

image = models.FileField(upload_to='/Users/john/projects/MyDjangoApp/foobars/images/')

所以 foobar 是来自 MyDjangoApp 的一些模块。将来会有另一个模块,比如 barfoos,它会有一个自己的图像文件夹。

我不明白的是如何在模板中处理这个。现在有这样的东西:

<td><img src="{{ foobar.image.url }}" height="350" width="350"></td>

所以有以下几点:

/Users/john/projects/MyDjangoApp/foobars/images/71RkbKwBxnL._SL1004_.jpg

但它必须是这样的:

http://127.0.0.1:8000/foobars/images/71RkbKwBxnL._SL1004_.jpg

我发现的所有 url 模式仅在 /MyDjangoApp/static/images 中托管的图像时处理此问题,我希望处理 /MyDjangoApp/foobars/images 和以后 /MyDjangoApp/barfoos/images 中的文件。

何在 Django 中处理这个问题。

非常感谢您的时间!

4

1 回答 1

2

upload_to参数应该是相对于您的MEDIA_ROOT设置的路径。您将用于访问该文件的 url 与附加到您的MEDIA_URL设置的相对路径相同。

还可以查看关于FileFields 和ImageFields以及关于MEDIA_ROOTandMEDIA_URL设置的文档

于 2013-07-27T19:41:30.953 回答