Unable to load image in django

I am new to django. I tried to upload the image via HTML (graph.html). views.py includes

def avg_duration_vs_time_of_day(request): figName="figGraph.png" path="Telecom/Images/"+figName day = [1, 2, 3, 4] query = "select time_of_day,avg(duration) from fact_table group by time_of_day" avg_call_day = connect(query) import matplotlib.pyplot as plt plt.figure(figsize = (4,4)) plt.xlabel("Time of Day",fontdict={'fontsize':8}) plt.ylabel("Average Call Duration in seconds",fontdict={'fontsize':8}) plt.title("Average Call Versus Time of Day",fontdict = {'fontsize':8}) plt.plot(day,avg_call_day,color='green', linestyle='solid',linewidth=1, marker='o',markerfacecolor='blue', markersize=0) plt.bar(day,avg_call_day,width=0.2,align='center') plt.savefig(path) image_data = open(path, "rb").read() context = { 'image_data': image_data } return render_to_response('welcome/graph.html', context) 

graph.html includes

 <div> <img src="{% 'views.avg_duration_vs_time_of_day.image_data' %} " /> </div> 

But the image cannot load in the browser, and the error

 TemplateSyntaxError at /graph/ Invalid block tag: ''views.avg_duration_vs_time_of_day.image_data'' 

What's the solution?

+4
source share
1 answer

You should put the image path in the template context instead of the image itself:

 context = { 'image_path': path } return render_to_response('welcome/graph.html', context) 

And your template syntax is incorrect:

 <div> <img src="{{ image_path }}"/> </div> 

Hope your settings are configured correctly. FYI, see:

Hope this helps.

+2
source

Source: https://habr.com/ru/post/1489487/


All Articles