【发布时间】:2017-03-12 20:17:40
【问题描述】:
我正在尝试完成我认为很简单的事情:上传图片(通过管理员),然后使用模板中的完整 URL 来显示图片。
问题是我只能打印相对 URL:/pics/filename.jpg。我相信顺序是settings.py(MEDIA_ROOT,MEDIA_URL),urls.py,views.py,然后是mytemplate.html。我希望有人能找到缺少的东西。
Settings:
STATIC_URL = '/static/'
MEDIA_ROOT = '/Users/ed/code/projects/djcms/pics/'
MEDIA_URL = '/pics/'
网址.py:
from django.conf import settings
from django.conf.urls.static import url, static
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^news/(?P<pk>[0-9]+)/$', views.detail, name='detail'),
] + static(r'^$/pics/', document_root = settings.MEDIA_URL)
Views.py
def detail(request, pk):
story = Article.objects.get(pk=pk)
my_pic = Photo.objects.get(pk=pk)
print(story.image.url)
print(my_pic)
print(story.body)
print(request)
context = {'story': story}
return render(request, 'articles/detail.html', context)
story.image.url 的错误:
AttributeError: 'Photo' object has no attribute 'url'
当我删除 .url 时,我得到了这个部分 URL:
pics/intro-bg.jpg
我错过了什么?谢谢。
【问题讨论】:
标签: python django django-models imagefield