You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

60 lines
2.2 KiB

from django.shortcuts import render
from menu.models import *
from django.db.models import Q
from django.http import HttpResponse, JsonResponse
from algorithm.views import search_menu
from general.views import process_json
# Create your views here.
# dish_material 是n*2的矩阵 eg. [[“100g”,"糯米粉",1],["25g","粘米粉",1]]
def set_dish(dish_name, dish_materials, dish_steps, dish_flavor):
dish = Dish.objects.create(name=dish_name)
flavor = DishFlavor.objects.create(sour=dish_flavor[0], sweet=dish_flavor[1], bitter=dish_flavor[2],
spicy=dish_flavor[3],
salty=dish_flavor[4], dish=dish)
time = 0
for item in dish_materials:
m = Material.objects.create(amount=item[0], dish=dish, food_type=FoodType.objects.get(name=item[1]))
if len(item) == 3:
m.is_important = item[2]
m.save()
for i in range(len(dish_steps)):
Step.objects.create(order=i + 1, text=dish_steps[i][0], time=dish_steps[i][1], dish=dish)
time += dish_steps[i][1]
dish.time = time
dish.save()
def get_menus(request):
openid = request.META['HTTP_X_WX_OPENID']
upper_bound = request.GET['upper_bound']
lower_bound = request.GET['lower_bound']
results = search_menu(upper_bound, lower_bound, openid).values()
for item in results:
item['time'] = float(item['time'])
results = process_json(results)
return JsonResponse({'result': results})
def get_materials(request):
dish_id = request.GET['id']
materials = Dish.objects.get(id=dish_id).material_set.values()
for material in materials:
material['name'] = FoodType.objects.get(id=material['food_type_id']).name
if material['is_important']:
material['is_important'] = 1
else:
material['is_important'] = 0
materials = process_json(materials)
return JsonResponse({'result': materials})
def get_steps(request):
dish_id = request.GET['id']
steps = Dish.objects.get(id=dish_id).step_set.values().order_by('order')
for step in steps:
step['time'] = float(step['time'])
steps = process_json(steps)
return JsonResponse({'result': steps})