Usando o matplotlib com views genéricas do Django
Eu estou tentando escrever uma página detalhada para cada linha de dados na tabela. Eu gostaria de gerar um gráfico de matplotlib dinamicamente para cada página usando os dados de cada linha.
Eu tentei o código com uma visão normal e funciona. No entanto, quando usado com odetail_view
página a imagem aparece como um link quebrado. O que devo incluir noDetailView
classe para gerar o gráfico para cada página?
graph.py
:
def plotResults(request):
p=get_object_or_404(Read_alignment,pk=id)
x =[]
y=[]
x.append(p.start)
x.append(p.stop)
y.append(p.count)
y.append(p.count)
fig=plt.figure()
ax= fig.add_subplot(311)
ax.set_xlim(right=30)
ax.step(x,y,'-',where='post', label='post')
canvas = FigureCanvas(fig)
response= HttpResponse(mimetype='image/png')
canvas.print_png(response)
return response
url.py
:
url(r'^(?P<pk>\d+)/align/plotResults.pngviews.py
:
class AlignDetailView(DetailView):
model = Read_alignment
def get_queryset(self):
queryset= Read_alignment.objects.filter(chr__icontains=3l)
return queryset
def get_context_data(self, **kwargs):
context = super(AlignDetailView,self).get_context_data(**kwargs)
context['alignment'] = self.object
return context
Como devo vincular o gráfico ao modelo de preferência sem tags estáticas ou de mídia? É possível gerar os gráficos sem salvar as imagens PNG na pasta estática?
,plotResults),
url(r'^(?P<pk>\d+)/align/views.py
:
class AlignDetailView(DetailView):
model = Read_alignment
def get_queryset(self):
queryset= Read_alignment.objects.filter(chr__icontains=3l)
return queryset
def get_context_data(self, **kwargs):
context = super(AlignDetailView,self).get_context_data(**kwargs)
context['alignment'] = self.object
return context
Como devo vincular o gráfico ao modelo de preferência sem tags estáticas ou de mídia? É possível gerar os gráficos sem salvar as imagens PNG na pasta estática?
,AlignDetailView.as_view(), name='AlignDetailView'),
views.py
:
class AlignDetailView(DetailView):
model = Read_alignment
def get_queryset(self):
queryset= Read_alignment.objects.filter(chr__icontains=3l)
return queryset
def get_context_data(self, **kwargs):
context = super(AlignDetailView,self).get_context_data(**kwargs)
context['alignment'] = self.object
return context
Como devo vincular o gráfico ao modelo de preferência sem tags estáticas ou de mídia? É possível gerar os gráficos sem salvar as imagens PNG na pasta estática?