我在显示每个问题的管理页面上传的图像时遇到了困难。在问题的管理页面中,我为每个问题上传图像,并将其保存在正确的目录中。但是,在公共视图中,我无法为每个问题显示这些图像(每个问题将根据我上传的内容显示不同的图像)。 [附后的例子]
以下是代码:
models.py
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
image_movie = models.ImageField(upload_to='static/polls/images', default='static/polls/images')
views.py
def image(request):
images = Question()
var = RequestContext(request,{
'images':images
})
return render_to_response('detail.html', var)
detail.html
<form action="{% url 'polls:vote' question.id %}" method="post">{% csrf_token %}
<img src="{{ question.image_movie.url }}" />
{% for choice in question.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>
轮询/ urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>[0-9]+)/static/polls/images/', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>[0-9]+)/results/$', views.ResultsView.as_view(), name='results'),
url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
]
我试图在其他地方找到解决方案,但我没有得到它,不能适用于我的问题。他们是: Django - How can I display a photo saved in ImageField?
如果你能帮我指出我做错了什么,我真的很感激。
谢谢。
答案 0 :(得分:1)
我通过将detail.html的代码更改为:
来解决此问题{% load staticfiles %}
<img src="{% static question.image_movie.url %}" style="width:500px;height:320px"/>
这意味着图像将被保存并加载到/ static / polls / images中。 (例如:“127.0.0.1/static/polls/images”而不是像以前那样“127.0.0.1/polls/1/static/polls/images”)
系统似乎无法识别“question.id”以显示目录中的图像。