def rate(request): try: menu_item_id = request.GET["item"] except KeyError: return HttpResponseBadRequest(error_json('item required but not prodided')) try: username = request.GET["username"] except KeyError: return HttpResponseBadRequest(error_json('username required but not prodided')) try: rating = request.GET["rating"] except KeyError: return HttpResponseBadRequest(error_json('rating required but not prodided')) try: item = MenuItem.objects.get(locu_id=menu_item_id) user = User.objects.get(username=username) except MenuItem.DoesNotExist: return HttpResponseBadRequest(error_json('Menu item "%s" does not exist'%menu_item_id)) except User.DoesNotExist: return HttpResponseBadRequest(error_json('User "%s" does not exist'%username)) if rating.lower() == "like": r = Rating(user=user, menu_item=item, value=Rating.LIKE) r.save() elif rating.lower() == "dislike": r = Rating(user=user, menu_item=item, value=Rating.DISLIKE) r.save() else: return HttpResponseBadRequest(error_json('Rating "%s" is not valid'%rating)) from ml import ML ML.build() return HttpResponse("")
def run(): from api.importer import import_items print("importing menu items") import_items("../turk/data/menu_item.json") print("importing ratings") from api.rating_importer import import_ratings import_ratings("../turk/data/training.csv") from ml import ML print("rebuilding model") ML.build()