2017-11-11 74 views
-3

如何把一个旗帜在每一个后第三个如何广告的东西每三个岗位的Django

views

def all_ads(request): 
all_ads = CreateNewAdvert.objects.filter(is_active=True) 
all_ads_list = list() 
banner = Banners.objects.all() 
counter = 0 
for i in all_ads: 
    if len(all_ads_list) % 3 == 0: 
      all_ads_list.append(i) 
      all_ads_list = list() 
      all_ads_list.append(banner[counter]) 
    print i 
paginator = Paginator(all_ads, 10) # Show 25 contacts per page 
page = request.GET.get('page') 
try: 
    all_ads_paginated = paginator.page(page) 
except PageNotAnInteger: 
    # If page is not an integer, deliver first page. 
    all_ads_paginated = paginator.page(1) 
except EmptyPage: 
    # If page is out of range (e.g. 9999), deliver last page of results. 
    all_ads_paginated = paginator.page(paginator.num_pages) 

context = { 
    'all_ads': all_ads_paginated, 
} 
return context 

需要得到这个: 后1, 后2, post 3, banner 1,post 4, post 5, post 6, banner 2

+2

请参见[为什么我可以不上SO问一个问题,当上传的代码图像?](http://meta.stackoverflow.com/questions/285551/why-may- i-not-upload-images-code-on-so-when-ask-question- –

+0

当前你只是检查整个列表的长度是否可以被三除。如果你想检查当前的迭代,你需要构建你的代码有点不同。考虑你想要达到的目标,然后建立一个简单的工作结构 – hansTheFranz

回答

0
def all_ads(request): 
all_ads = CreateNewAdvert.objects.filter(is_active=True) 

paginator = Paginator(sort_adds(all_ads), 10) # Show 25 contacts per page 
page = request.GET.get('page') 
try: 
    all_ads_paginated = paginator.page(page) 
except PageNotAnInteger: 
    # If page is not an integer, deliver first page. 
    all_ads_paginated = paginator.page(1) 
except EmptyPage: 
    # If page is out of range (e.g. 9999), deliver last page of results. 
    all_ads_paginated = paginator.page(paginator.num_pages) 

context = { 
    'all_ads': all_ads_paginated, 
} 
return context 

结果

def sort_adds(obj): 
sell_adds_list = list() 
banner = Banners.objects.all() 
counter = 0 
adds_counter = 0 
for i in obj: 
    sell_adds_list.append(i) 
    adds_counter += 1 
    if adds_counter % 3 == 0: 
     if not counter > len(banner): 
      sell_adds_list.append(banner[counter]) 
      counter += 1 
     else: 
      pass 
return sell_adds_list