我有一个页面,用户可以在其中搜索其他用户。搜索使用ajax完成,结果在模板中循环,然后放在页面上。搜索工作完美,但MEDIA_URL在结果中显示为空,并打破结果的所有配置文件图片。 MEDIA_URL标记适用于网站上的其他任何位置,而不在此模板中。我正在使用pyjade作为我的模板。
python在搜索结束时返回结果
#render template to string, pass to js to add to page
r = render_to_string('users/search_ajax_template.jade', { 'results': p })
return HttpResponse(json.dumps({'results': r, 'errcode': 0}))
search_ajax_template.jade
- for result in results
div.result-wrapper
a(href='/profiles/{{ result.path }}', class='result')
img(src='{{ MEDIA_URL }}{{ result.prof_pic }}')
div.result-name {{ result.name }}
答案 0 :(得分:1)
需要将MEDIA_URL添加到上下文字典中以进行渲染。
选项1:
from django.template import RequestContext
...
...
...
r = render_to_string('users/search_ajax_template.jade', { 'results': p }, context_instance=RequestContext(request))
选项2:
from settings import MEDIA_URL
...
...
...
r = render_to_string('users/search_ajax_template.jade', { 'results': p, 'MEDIA_URL': MEDIA_URL })