Plotly - Plot не рендерится в Django
Я создал 2 функции для создания графиков в моих проектах, по сути, представление вызывает эти функции для создания графиков, однако, проблема заключается в том, что один из графиков не отображается, но код точно такой же, как и у другого графика (исключение составляют названия столбцов)
views.py
@login_required
def dashboard(request):
c = Profile.objects.get(user=request.user)
leads = Leads.objects.filter(agent_id = c)
deals = Deal.objects.filter(agent_id=c)
#Data for plot
qs_leads = Leads.objects.filter(
agent_id=c, status='Open')
qs_deals = Deal.objects.filter(
agent_id=c)
df = read_frame(qs_leads)
#Creates Plots
plot_div_leads = plot_leads_data(qs_leads)
plot_div_deals = plot_deals_data(qs_deals)
if len(leads) == 0:
context = {'leads': len(leads),
'deals': len(deals),
}
else:
if len(deals) == 0:
context = {'leads':leads,
'deals': len(deals),
'pot_div_leads':plot_div_leads}
else:
context = {'leads':leads,
'deals':deals,
'pot_div_leads':plot_div_leads,
'plot_div_deals':plot_div_deals}
return render(request,
'account/dashboard.html',
context)
Dashboard.html
Файл для графиков
graphs = []
graphs.append(go.Bar(
x=df['company'],
y=df['expected_revenue'],
name='Estimated Revenue'
))
layout = {
'title': 'Estimated Revenue by Company',
'xaxis_title': 'Company',
'yaxis_title': 'Estimated Revenue',
'height': 500,
'width': 640,
}
plot_div_leads = plot({'data': graphs, 'layout': layout},
output_type='div',include_plotlyjs=False,
show_link=False,link_text="")
return plot_div_leads
def plot_deals_data(qs):
df = read_frame(qs)
graphs = []
graphs.append(go.Bar(
x=df['company'],
y=df['revenue'],
name='Estimated Revenue',
marker=dict(color='#008375'),
width=0.2,
))
layout = {
'title': 'Revenue by Company',
'title_xanchor':'center',
'title_yanchor':'top',
'title_y':0.9,
'title_x':0.5,
'xaxis_title': 'Company',
'yaxis_title': 'Actual Revenue',
'height': 600,
'width': 740,
'font_family':'Muli',
'font_color':'#008375',
'font_size': 16
}
plot_div = plot({'data': graphs, 'layout': layout},
output_type='div',include_plotlyjs=False,
show_link=False,link_text="")
return plot_div
В результате получается следующее
Deals
У кого-нибудь есть идеи, почему работает только один заговор?