django media_url with ajax

时间:2014-01-22 01:08:15

标签: ajax django

我有一个页面,用户可以在其中搜索其他用户。搜索使用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 }}

1 个答案:

答案 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 })