def detail(request, item_id): # 商品詳細情報 item = Item.objects.raw('select id, itemName, itemCaption, mediumImageUrls, format(itemPrice, 0) itemPrice, affiliateUrl, genreId, getTime, price_sentence, alchol_sentence, capacity_sentence, twenty_sentence ,tweetSentence from Item where id = %s;' % item_id)[0] # 同カテゴリの商品リスト category_id = item.genreid relatedItems = Item.objects.raw('select id, itemName, format(itemPrice,0) itemPrice, affiliateUrl, mediumImageUrls from Item where genreId = %s limit 30;' % category_id) # 現在の階層を確認 nowCategory = Rakutencategory.objects.raw('select * from RakutenCategory where Category_id = %s' % category_id) #パンくずと関連カテゴリ生成 try: breadCrumb = createBreadCrumb.makeBreadCrumb(nowCategory)['breadCrumb'] bottomCategories = createBreadCrumb.makeBreadCrumb(nowCategory)['bottomCategories'] # カテゴリがなかった場合、空のパンくず,関連カテゴリ配列を作成 except IndexError: bottomCategories = [] breadCrumb = [] if parse(request.META['HTTP_USER_AGENT']).is_mobile: t = loader.get_template('rakuten/spDetail.html') else: t = loader.get_template('rakuten/detail.html') c = Context({'typicalCategories':typicalCategories, 'item':item, 'bottomCategories':bottomCategories, 'relatedItems':relatedItems, 'breadCrumb':breadCrumb, 'searchForm':searchForm}) return HttpResponse(t.render(c))
def category(request, category_id, page): # 現在の階層を確認 nowCategory = Rakutencategory.objects.raw('select * from RakutenCategory where Category_id = %s' % category_id) # パンくず作成 now_lft = createBreadCrumb.makeBreadCrumb(nowCategory)['now_lft'] now_rgt = createBreadCrumb.makeBreadCrumb(nowCategory)['now_rgt'] now_diff_lr = createBreadCrumb.makeBreadCrumb(nowCategory)['now_diff_lr'] breadCrumb = createBreadCrumb.makeBreadCrumb(nowCategory)['breadCrumb'] bottomCategories = createBreadCrumb.makeBreadCrumb(nowCategory)['bottomCategories'] #itemをcount itemCount = Item.objects.raw('select i.id, count(*) count from Item i inner join RakutenCategory r on i.genreId = r.Category_id where lft >= %s and rgt<= %s;', (now_lft, now_rgt))[0].count #ページネーション作成 #pageが数字なら try: page = int(request.GET['page']) page = pager.pagerInt(page, itemCount)['page'] start_id = pager.pagerInt(page, itemCount)['start_id'] prevNext = pager.pagerInt(page, itemCount)['prevNext'] #pageが数字じゃなかったら except: page = pager.pagerNotInt()['page'] start_id = pager.pagerNotInt()['start_id'] prevNext = pager.pagerNotInt()['prevNext'] categoryItemList = Item.objects.raw('select i.id, i.itemName, i.mediumImageUrls, i.itemPrice from Item i inner join RakutenCategory r on i.genreId = r.Category_id where lft >= %s and rgt <= %s limit %s, 30;', (now_lft, now_rgt, start_id)) if parse(request.META['HTTP_USER_AGENT']).is_mobile: t = loader.get_template('rakuten/spCategory.html') else: t = loader.get_template('rakuten/category.html') c = Context({'typicalCategories':typicalCategories, 'nowCategory':nowCategory, 'category_id':category_id, 'bottomCategories':bottomCategories, 'now_diff_lr':now_diff_lr, 'breadCrumb':breadCrumb, 'searchForm':searchForm, 'prevNext':prevNext, 'categoryItemList':categoryItemList, 'itemCount':itemCount/30 + 1, 'page':page, 'start_id':start_id, } ) return HttpResponse(t.render(c))