Function to query API
class kpcc_api_article():
def __init__(self, permalink, image_asset, publish_date, short_title):
self.user = permalink
self.text = image_asset
self.graphic = publish_date
self.time = short_title
# search kpcc api for related articles to display on detail pages
def search_kpcc_article_api():
url_prefix = 'http://www.scpr.org/api/v2/content/?'
url_types = 'types=news,blogs,segments'
url_query = '&query=wildfire+burning+california'
url_limit = '&limit=10'
url_page = '&page=1'
search_url = '%s%s%s%s%s' % (url_prefix, url_types, url_query, url_limit, url_page)
json_response = urllib.urlopen(search_url)
json_response = json_response.readlines()
js_object = json.loads(json_response[0])
articles = []
for kpcc_article in js_object:
article_permalink = kpcc_article['permalink']
article_image_asset = kpcc_article['assets'][0]['small']['url']
article_publish_date = kpcc_article['published_at']
article_short_title = kpcc_article['short_title']
this_article = kpcc_api_article(article_permalink, article_image_asset, article_publish_date, article_short_title)
articles.append(this_article)
return articles
Returns to the view as
def detail(request, fire_slug):
calwildfire = get_object_or_404(CalWildfire, fire_slug=fire_slug)
calwildfires = CalWildfire.objects.all()[:15]
wildfire_updates = WildfireUpdate.objects.filter(fire_name__fire_name=calwildfire.fire_name)
auth1 = tweepy.auth.OAuthHandler(settings.TWEEPY_CONSUMER_KEY, settings.TWEEPY_CONSUMER_SECRET)
auth1.set_access_token(settings.TWEEPY_ACCESS_TOKEN, settings.TWEEPY_ACCESS_TOKEN_SECRET)
api = tweepy.API(auth1)
result_list = api.search(calwildfire.twitter_hashtag)
kpcc_articles = search_kpcc_article_api()
if calwildfire.asset_host_image_id:
kpcc_image = search_assethost(settings.ASSETHOST_TOKEN_SECRET, calwildfire.asset_host_image_id)
else:
kpcc_image = None
return render_to_response('detail.html', {
'calwildfire': calwildfire,
'calwildfires': calwildfires,
'wildfire_updates': wildfire_updates,
'result_list': result_list,
'kpcc_articles': kpcc_articles,
'kpcc_image': kpcc_image,
}, context_instance=RequestContext(request))
And on the template I can call
{% for article in kpcc_articles %}
{{ article }}
{% endfor %}
Which gives me access to
<calfire_tracker.kpccapi.kpcc_api_article instance at 0x109cc80e0> <calfire_tracker.kpccapi.kpcc_api_article instance at 0x109cc8c20>
<calfire_tracker.kpccapi.kpcc_api_article instance at 0x109cc89e0> <calfire_tracker.kpccapi.kpcc_api_article instance at 0x109cc8878>
<calfire_tracker.kpccapi.kpcc_api_article instance at 0x109cc85a8> <calfire_tracker.kpccapi.kpcc_api_article instance at 0x1099bd440>
<calfire_tracker.kpccapi.kpcc_api_article instance at 0x1099bdfc8> <calfire_tracker.kpccapi.kpcc_api_article instance at 0x1099bd7a0>
<calfire_tracker.kpccapi.kpcc_api_article instance at 0x1099bd6c8> <calfire_tracker.kpccapi.kpcc_api_article instance at 0x1099bd0e0>
I have never learned how to unpack these though… Is it something like
{% with something as target %}
{{ target.param }}
{% endwith %}