def fund_nav_str_view(request, p_fund_id, p_year): try: t_fund = FundClearInfoModel.get_fund(p_fund_id) t_fdata = FundClearDataModel.get_by_key_name( FundClearDataModel.compose_key_name(p_fund_id, p_year), t_fund) nav_dict = t_fdata._get_nav_dict() nav_dict = collections.OrderedDict(sorted(nav_dict.items())) nav_info = '' for t_key, t_entry in nav_dict.items(): nav_info += '{}:{}<br>\n'.format(t_key, t_entry) next_year = int(p_year) - 1 t_fdata = FundClearDataModel.get_by_key_name( FundClearDataModel.compose_key_name(p_fund_id, next_year), t_fund) if t_fdata is None or len(t_fdata._get_nav_dict()) == 0: next_year_link = 'NAV End' else: next_year_link = '<a href="/mf/fc/nav_str/{}/{}/">{}</a>'.format( p_fund_id, next_year, 'next') args = { 'tpl_section_title': 'fund {} year {}, {}'.format(p_fund_id, p_year, next_year_link), 'tpl_info': nav_info, } return render_to_response('mf_simple_info.tpl.html', args) except Exception, e: err_msg = 'fund_nav_str_view ERROR: {}'.format(e) logging.error(err_msg) args = { 'tpl_info': err_msg, } return render_to_response('mf_simple_info.tpl.html', args)
def get(self, request, p_fund_id, p_year, *args, **kwargs): t_fund = FundClearInfoModel.get_fund(p_fund_id) t_fdata = FundClearDataModel.get_by_key_name( FundClearDataModel.compose_key_name(p_fund_id, p_year), t_fund) nav_dict = t_fdata._get_nav_dict() nav_dict = collections.OrderedDict(sorted(nav_dict.items())) json_nav = [[key, nav_dict[key][1]] for key in nav_dict] return HttpResponse(json.dumps(json_nav, indent=2))