我想仅通过 filter_alert 进行分页。 而且我也只得到 filter_alert 的最后结果。我将在代码下面解释更多。 这是我在views.py中的代码
class TestView(FormView, TemplateView):
template_name = 'home/main.html'
context_object_name = 'pages'
paginate_by = 10
form_class = DomainsForm
def get_context_data(self, **kwargs):
context = super(TestView, self).get_context_data(**kwargs)
list_tables = Domains.objects.all()
context['lists'] = list_tables
tbls_id = list_tables.exclude(status=0).values_list('id', flat=True)
context['alerts_list'] = Alerts.objects.all()
data = []
for row_id in tbls_id:
cron_info = get_cron_info(row_id)
data.append(cron_info)
context['data'] = simplejson.dumps(data)
tbl = Domains.objects.get(id=row_id)
t_pages = create_pg("Pages_" + tbl.tablename)
query_pages = t_pages.objects.all()
context['pages'] = query_pages
get_alerts = create_alerts('Links_' + tbl.tablename + '_Alerts')
filter_alert = get_alerts.objects.all()
context['all_alerts'] = filter_alert
return context
因此,在表域中,我有3个id' s,其中1个状态= 0。我想获得另外2个id并通过for循环传递它们。但是当我在模板中提取结果时...我只得到最后一个id。 我正在使用 row_id 来获取所有ID ...我做了一次打印测试...它给了我2个ID ...但是当我想要的时候要查看 filter_alerts 的所有结果,它只会显示模板中的最后一个ID。
我也希望实现分页...我通常使用此代码...但它不能在 TemplateView 中工作。
all_alerts = get_alerts.objects.all()
page = request.GET.get('page', 1)
paginator = Paginator(all_alerts, 10)
try:
details = paginator.page(page)
except PageNotAnInteger:
details = paginator.page(1)
except EmptyPage:
details = paginator.page(paginator.num_pages)
context['all_alerts'] = details
我知道它不起作用,因为函数 get_context_data 没有请求。我需要创建一个单独的功能吗?也许重新创建 get_queryset 函数。 我不知道...... 请帮忙。谢谢
更新 我使用了一个空列表并附加到它...在模板中没有给我任何结果
代码:
filter_data = []
for row_id in tbls_id:
...
filter_alert = get_alerts.objects.all()
filter_data.append(filter_alert)
print filter_data # it prints both objects
context['all_alerts'] = filter_data
return context
template.html all_alerts 中的无法正常工作
答案 0 :(得分:0)
关于分页部分......找到了答案。 它需要 self.request ,而不仅仅是 请求 。
但是我仍然需要另一个问题的答案