from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.contrib.auth.models import User
from .models import *
from .forms import *
from django.contrib import messages
from django.contrib.auth import authenticate,login,logout
from django.contrib.auth.decorators import login_required
from .decorators import *
from django.contrib.auth.models import Group
from .filters import fooditemFilter
# Create your views here.
@login_required(login_url='login')
@admin_only
def home(request):
breakfast=Category.objects.filter(name='breakfast')[0].fooditem_set.all()[:5]
lunch=Category.objects.filter(name='lunch')[0].fooditem_set.all()[:5]
dinner=Category.objects.filter(name='dinner')[0].fooditem_set.all()[:5]
snacks=Category.objects.filter(name='snacks')[0].fooditem_set.all()[:5]
customers=Customer.objects.all()
context={'breakfast':breakfast,
'lunch':lunch,
'dinner':dinner,
'snacks':snacks,
'customers':customers,
}
return render(request,'main.html',context)
@login_required(login_url='login')
@allowed_users(allowed_roles=['admin'])
def fooditem(request):
breakfast=Category.objects.filter(name='breakfast')[0].fooditem_set.all()
bcnt=breakfast.count()
lunch=Category.objects.filter(name='lunch')[0].fooditem_set.all()
lcnt=lunch.count()
dinner=Category.objects.filter(name='dinner')[0].fooditem_set.all()
dcnt=dinner.count()
snacks=Category.objects.filter(name='snacks')[0].fooditem_set.all()
scnt=snacks.count()
context={'breakfast':breakfast,
'bcnt':bcnt,
'lcnt':lcnt,
'scnt':scnt,
'dcnt':dcnt,
'lunch':lunch,
'dinner':dinner,
'snacks':snacks,
}
return render(request,'fooditem.html',context)
@login_required(login_url='login')
@allowed_users(allowed_roles=['admin'])
def createfooditem(request):
form = fooditemForm()
if request.method == 'POST':
form = fooditemForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
context={'form':form}
return render(request,'createfooditem.html',context)
@unauthorized_user
def registerPage(request):
form=createUserForm()
if request.method=='POST':
form=createUserForm(request.POST)
if form.is_valid():
user=form.save()
username=form.cleaned_data.get('username')
group=Group.objects.get(name='user')
user.groups.add(group)
email=form.cleaned_data.get('email')
Customer.objects.create(user=user, name=username,email=email)
messages.success(request,'Account created for '+username)
return redirect('login')
context={'form':form}
return render(request,'register.html',context)
@unauthorized_user
def loginPage(request):
if request.method=='POST':
username=request.POST.get('username')
password=request.POST.get('password')
user=authenticate(request,username=username,password=password)
if user is not None:
login(request,user)
return redirect('home')
else:
messages.info(request,'username or password is invalid')
return render(request,'login.html')
@login_required(login_url='login')
def logoutUser(request):
logout(request)
return redirect('login')
def userPage(request):
user=request.user
cust=user.customer
fooditems=Fooditem.objects.filter()
myfilter = fooditemFilter(request.GET,queryset=fooditems)
fooditems=myfilter.qs
total=UserFooditem.objects.all()
myfooditems=total.filter(customer=cust)
cnt=myfooditems.count()
querysetFood=[]
for food in myfooditems:
querysetFood.append(food.fooditem.all())
finalFoodItems=[]
for items in querysetFood:
for food_items in items:
finalFoodItems.append(food_items)
totalCalories=0
for foods in finalFoodItems:
totalCalories+=foods.calorie
CalorieLeft=2000-totalCalories
context={'CalorieLeft':CalorieLeft,'totalCalories':totalCalories,'cnt':cnt,'foodlist':finalFoodItems,'fooditem':fooditems,'myfilter':myfilter}
return render(request,'user.html',context)
def addFooditem(request):
user=request.user
cust=user.customer
if request.method=="POST":
form =addUserFooditem(request.POST)
if form.is_valid():
form.save()
return redirect('/')
form=addUserFooditem()
context={'form':form}
return render(request,'addUserFooditem.html',context)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
卡路里计算器.zip (65个子文件)
卡路里计算器
db.sqlite3 216KB
manage.py 652B
calorieCalc
__init__.py 0B
wsgi.py 415B
urls.py 822B
settings.py 3KB
__pycache__
settings.cpython-37.pyc 3KB
__init__.cpython-37.pyc 157B
wsgi.cpython-37.pyc 568B
urls.cpython-37.pyc 985B
static
asgi.py 415B
static
css
main.css 289B
Fityfeed
__init__.py 0B
tests.py 63B
admin.py 363B
migrations
__init__.py 0B
0010_auto_20200729_1800.py 443B
0003_fooditem_quantity.py 418B
0001_initial.py 2KB
0007_fooditem_calorie.py 449B
0004_auto_20200725_0936.py 407B
0009_userfooditem_customer.py 443B
0006_auto_20200725_0948.py 533B
0005_auto_20200725_0938.py 431B
0002_auto_20200725_0910.py 666B
0008_userfooditem.py 557B
__pycache__
0006_auto_20200725_0948.cpython-37.pyc 652B
0004_auto_20200725_0936.cpython-37.pyc 598B
0010_auto_20200729_1800.cpython-37.pyc 628B
0003_fooditem_quantity.cpython-37.pyc 609B
0005_auto_20200725_0938.cpython-37.pyc 617B
0008_userfooditem.cpython-37.pyc 696B
0001_initial.cpython-37.pyc 2KB
0002_auto_20200725_0910.cpython-37.pyc 596B
0007_fooditem_calorie.cpython-37.pyc 646B
0009_userfooditem_customer.cpython-37.pyc 628B
__init__.cpython-37.pyc 165B
apps.py 96B
models.py 1KB
templates
register.html 4KB
password_reset.html 261B
main.html 6KB
fooditem.html 4KB
password_reset_complete.html 129B
createfooditem.html 389B
password_reset_done.HTML 322B
addUserFooditem.html 389B
login.html 3KB
user.html 2KB
passwors_reset_confirm.HTML 234B
navbar.html 1KB
urls.py 1KB
decorators.py 1KB
__pycache__
decorators.cpython-37.pyc 2KB
views.cpython-37.pyc 4KB
admin.cpython-37.pyc 709B
forms.cpython-37.pyc 1KB
models.cpython-37.pyc 2KB
__init__.cpython-37.pyc 154B
apps.cpython-37.pyc 374B
filters.cpython-37.pyc 562B
urls.cpython-37.pyc 1KB
views.py 5KB
forms.py 471B
filters.py 167B
共 65 条
- 1
资源评论
python慕遥
- 粉丝: 1943
- 资源: 225
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功