from django.shortcuts import render,redirect from app01.models import NewsappNewsunit as news from datetime import datetime import math # Create your views here. def index(request): return render(request,'index.html',locals()) def showall(request): items = news.objects.all() return render(request,'showall.html',locals()) def edit(request): if request.method=='POST': id = request.POST['id'] recd = news.objects.get(id=id) recd.title = request.POST['title'] recd.catego = request.POST['catego'] recd.message = request.POST['message'] recd.nickname = request.POST['nickname'] recd.press = request.POST['press'] try: recd.save() return redirect('/showall/') except: message01 = '修改資料發生錯誤' return render(request,'edit.html',locals()) #return redirect('/showall/') elif request.method=='GET': myid = request.GET['id'] items = news.objects.get(id=myid) id = items.id title = items.title catego = items.catego message = items.message nickname = items.nickname press = items.press return render(request,'edit.html',locals()) pagenum = 1 def page1(request): global pagenum pagesize = 8 #可以顯示的必須enabled=True items = news.objects.filter(enabled=True) #計算筆數兩種方法:(1).items.count()。(2)len(items) #totalnum = len(items) totalnum = items.count() #totalpagenum = totalnum//pagesize totalpagenum = math.ceil(totalnum/pagesize) #下一頁 #若是由form傳來get變數:request.GET['pagebtn'] #若是由網址?pagebtn=..傳來的get變數:request.GET.get('pagebtn') #網址傳來筆數,一律都是文字(就算是數字,也是文字)== '1' #由目前pagenum來計算相關顯示數據 startnum = (pagenum-1)*pagesize endnum = pagenum*pagesize items = news.objects.filter(enabled=True).order_by('id')[startnum:endnum] #若是下一頁,上一頁,再修改所要顯示的數據 if request.GET.get('pagebtn') == '1': if pagenum <= totalpagenum-1: pagenum += 1 startnum = (pagenum-1)*pagesize endnum = pagenum*pagesize items = news.objects.filter(enabled=True).order_by('id')[startnum:endnum] #上一頁 elif request.GET.get('pagebtn') == '-1': if pagenum >= 2: pagenum -= 1 startnum = (pagenum-1)*pagesize endnum = pagenum*pagesize items = news.objects.filter(enabled=True).order_by('id')[startnum:endnum] ''' elif request.GET.get('pagebtn') == None: pagenum = 1 startnum = 1 endnum = pagesize items = news.objects.filter(enabled=True).order_by('id')[startnum:endnum] ''' #把全域變數設定到local筆數 currentpagenum = pagenum return render(request,'page1.html',locals()) def detail(request): id = request.GET.get('id') item = news.objects.filter(id=id) if len(item)>0: #注意:若用filter查詢,結果是個list陣列,第一筆資料為item[0](get查詢不是list陣列) title = item[0].title catego = item[0].catego message = item[0].message nickname = item[0].nickname pubtime = item[0].pubtime pubtime = item[0].pubtime else: message01 = '找不到資料' return render(request,'detail.html',locals())