2013-05-19 4 views
0

в моем django приложении, у меня есть страница index, в которой перечислены некоторые сводные данные, которые являются динамическими (на основе некоторых пользовательских входных данных в db). Я закодировал, как показано нижеЗапись urlpattern в django для рендеринга изображения

views.py

def custom_render(request,context,template): 
    req_context=RequestContext(request,context) 
    return render_to_response(template,req_context) 

@login_required 
def index(request, template_name): 
    summary_info = get_summary(...) 
    return custom_render(request,{'summary':summary_info},template_name) 

urls.py

urlpatterns=patterns('', 
    ... 
    url(r'^$', 'myapp.views.index',dict(template_name = 'myapp/index.html'), name = 'home'), 
... 

Теперь я хочу, чтобы включить диаграмму изображение, формируемое Matplotlib на домашнем page..So, когда пользователь запрашивает URL-адрес указательной страницы, он может видеть как сводную информацию, так и диаграмму

Я написал index.html как ниже

{% extends "myapp/base.html" %} 
.... 
<div id='summary'> 
{# here display the summary #} 
... 
</div> 

<div id='chart'> 
<img class="chartimage"src="{% url myapp_render_chart %}"    
    alt="chart"    
    /> 
</div> 

мнение диаграмма

def render_chart(request): 
    data = get_data(request.user) 
    canvas = None 
    if data: 
     canvas = create_piechart(data) 
    response = HttpResponse(content_type = 'image/png') 
    if canvas: 
     canvas.print_png(response) 
    return response 

import matplotlib.pyplot as plt 
def create_piechart(data,chartsize=(16,16)): 
    ... 
    figure = plt.figure(figsize = chartsize) 
    plt.pie(fracs, labels=labels, autopct='%1.1f%%', shadow=True)   
    canvas = FigureCanvas(figure) 
    plt.close(figure) 
    return canvas 

Я не знаю, как я должен делать urlmapping.The URL r'^$', уже сопоставляется с индексом page.But мне нужно создать url(...) в urlpatterns sothat зрения render_chart() связан с именем myapp_render_chart и поэтому может быть вызван в теге {% url %}. Может ли кто-нибудь помочь мне с этим?

ответ

1

Значит, вам просто нужно отобразить URL-адрес? Это не сильно отличается от того, который у вас уже есть. например,

urlpatterns = patterns("myapp.views", 
    url(r'^$', 'index',dict(template_name = 'myapp/index.html'), name = 'home'), 
    url(r'^kick-ass-chart/$', 'render_chart', name='myapp_render_chart'), 
) 
+0

спасибо Ciske, я сомневался в том, что regex url 'kick-ass-chart' никогда не будет использоваться. – damon