use*_*635 6 html python database django image
我只想通过网页上的html图像标记显示我通过管理模块上传的图像.该图像位于/home/user/work/djcode/media/chicks/blondie.jpg中.
这是我的models.py的相关部分
class Image(models.Model):
model_name = models.CharField(max_length=50)
model_pic = models.ImageField(upload_to='chicks/')
def __unicode__(self):
return self.model_name
Run Code Online (Sandbox Code Playgroud)
这是我的views.py的相关部分
def main(request):
i = get_object_or_404(Image, pk=1)
return render_to_response('polls/main.html', {'image': i}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
我正在使用的html标签很简单
<img src="{{ MEDIA_ROOT }}/{{ image.model_pic.url }}">
Run Code Online (Sandbox Code Playgroud)
来自settings.py,我的媒体根是MEDIA_ROOT ='/ home/user/work/djcode/media'
请注意,变量{{image.model_pic.url}}通过html模板显示"chicks/blondie.jpg",所以我认为我的图像对象确实很好地发送到了模板.
有人可以帮我一把吗?那会非常有帮助.
非常感谢你的时间!
您在模板中的图像字段上使用url函数不太正确 - {{ image.model_pic.url }}应该解决问题.你只需要放弃{{ MEDIA_URL }}一下.
你的HTML应该是 -
<img src="{{ image.model_pic.url }}">
Run Code Online (Sandbox Code Playgroud)
查看有关在模型中使用文件的文档.
如果您仍然遇到问题,那么提供静态文件可能会出现问题.在django中提供静态文件取决于您是在生产中还是仅使用python manage.py runserver命令.
要在开发期间服务器媒体文件(使用python manage.py runserver),请确保您的settings.py中的MEDIA_URL和MEDIA_ROOT正确无误,然后您可以将以下内容附加到您的网址 -
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
有关如何在生产中提供文件的说明,请查看文档.
| 归档时间: |
|
| 查看次数: |
15599 次 |
| 最近记录: |