将上下文变量从两个视图函数传递到同一模板

时间:2014-04-23 09:10:03

标签: django django-templates django-views

我尝试将值从两个函数渲染到一个html,我不知道如何执行此任务。 我想在两个函数中使用“return render”?如何在urls.py中读取这两个函数? 现在我的情况如下,当然TopAlerts没有返回任何东西。有什么建议吗?

views.py

def OneWeekRequest(request):
    #code here....
    ......
    return render_to_response('weeklyreport.html',
                              {'n1week': n1week,
                               'g1week': g1week,
                               'fweeks': fweeks,
                               'g4weeks': g4weeks,
                               'form': form,
                               'start': start,
                               'end': end,
                               'wnumber': wnumber,
                               'speriod': selectedrange},
                              context_instance=RequestContext(request))

def TopAlerts(request):
    #code here....
        ......    
    return render(request, 'weeklyreport.html', {'tops': tops})

urls.py

from django.conf import settings
from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
    url(r'^$', 'platforms.views.queryset'),
    url(r'^weeklyreport/$', 'weeklyreport.views.OneWeekRequest'),
    #url(r'^weeklyreport/', include('weeklyreport.urls')),

2 个答案:

答案 0 :(得分:1)

我在templatetags中创建了templatetag.py

from django import template
from platforms.models import Platform, Event

register = template.Library()

@register.simple_tag
def top_alerts(top):
    tops = Event.objects.filter(sourcetype_id__in=[1, 3],
                                  status_id__in=[1,2,7,8],
                                  event_datetime__range=('2014-04-07', '2014-04-13')
                                  ).exclude(service_id__in=[759, 7]
                                            ).values("event_datetime",
                                                     "platform__name",
                                                     "host__name","service__name",
                                                     "eventtype__name",
                                                     "status__name", "data")
    return {'tops': tops}

并在我的模板中。

{% load templatetag %}
and
{% top_alerts top %}

并且工作正常,但我不完全确定这是否适合我的项目。

答案 1 :(得分:0)

您无法从一个网址返回两个观看次数。 URL始终指向一个视图(当然,多个URL可以指向同一视图)。

听起来TopAlerts视图应该是inclusion tag