Показ рекламы между постами django ? Попытка показать рекламу после определенного количества постов
Я хочу реализовать такую вещь, Как facebook показывает рекламу, когда мы прокручиваем сообщения, после 4-го или 5-го сообщения мы видим некоторые объявления, как я могу сделать это, пожалуйста, может кто-нибудь сказать мне? Если есть ссылка на видео, пожалуйста, поделитесь
Я просматриваю все сообщения по циклу for, если есть вложенные циклы for, пожалуйста, поделитесь, как я могу зациклить две разные модели в одном цикле, показывая 1-й элемент одной модели после 5-го элемента другой модели
Спасибо 💗
** Я не использую google ad sense, вы можете себе представить, как я буду создавать свою собственную модель, возможно, ту же модель поста, где is_ads=True будет поле, подобное этому.
Это моя модель поста-
class Post(models.Model):
postuuid = models.UUIDField(default=uuid.uuid4,unique=True,editable=False)
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, null=True)
title = models.CharField(max_length=150,blank=False)
text = models.TextField(null=True,blank=False)
image = models.ImageField(upload_to='post_images/',null=True,blank=True,default="")
created_at = models.DateTimeField(auto_now_add=True, null=True)
likes = models.ManyToManyField(User, blank=True, related_name="post_like")
tag= models.CharField(max_length=150,blank=True)
post_url=models.URLField(max_length=150,blank=True)
video = models.FileField(upload_to='post_videos/',null=True,blank=True,default="")
# community = models.ForeignKey(communities,on_delete=models.CASCADE)
def __str__(self):
return self.title
Посмотрев на это, я думаю, что лучшим вариантом будет создание функции представления, которая создает два набора запросов и объединяет их в один, который вы можете передать контексту. Это будет что-то вроде этого:
# settings.py
AD_POST_FREQUENCY = 5 # Use this to control the frequency of ad posts appearing in the list of posts.
# views.py
from settings import AD_POST_FREQUENCY
def post_list(request):
ad_posts = Post.objects.filter(is_ad=True)
non_ad_posts = Post.objects.filter(is_ad=False)
posts = []
non_ad_post_section_count = 0
for i, post in enumerate(non_ad_posts):
posts.append(post)
if i % AD_POST_FREQUENCY == 0:
ad_post = ad_posts[non_ad_post_section_count]
posts.append(ad_post)
non_ad_post_section_count += 1
context = {
'posts': posts,
}
return render(request, 'your_template.html', context=context)
Используя этот подход, вы сможете по существу создать единый список постов для возврата в ваш шаблон. Затем вам нужно будет только просмотреть список в шаблоне, чтобы отобразить все посты.
Я сам не пробовал, но надеюсь, что это поможет вам.