def random_category_ad(context, ad_zone, ad_category): """ Returns a random advert from the specified category. Usage: {% load adzone_tags %} {% random_category_ad 'zone_slug' 'my_category_slug' %} """ to_return = {} # Retrieve a random ad for the category and zone ad = AdBase.objects.get_random_ad(ad_zone, ad_category) to_return['ad'] = ad # Record a impression for the ad if 'from_ip' in context and ad: from_ip = context.get('from_ip') try: impression = AdImpression( ad=ad, impression_date=datetime.now(), source_ip=from_ip) impression.save() except: pass return to_return
def random_zone_ad(context, ad_zone): """ Returns a random advert for ``ad_zone``. The advert returned is independent of the category In order for the impression to be saved add the following to the TEMPLATE_CONTEXT_PROCESSORS: 'adzone.context_processors.get_source_ip' Tag usage: {% load adzone_tags %} {% random_zone_ad 'zone_slug' %} """ to_return = {} # Retrieve a random ad for the zone ad = AdBase.objects.get_random_ad(ad_zone) to_return['ad'] = ad # Record a impression for the ad if 'from_ip' in context and ad: from_ip = context.get('from_ip') try: impression = AdImpression( ad=ad, impression_date=datetime.now(), source_ip=from_ip) impression.save() except: pass return to_return