示例#1
0
文件: views.py 项目: spondbob/replace
def write(request):
    if request.method == "POST" :
        ret = "OK"
        
        user = User()
        user.userId = int(request.POST["userId"])
        
        place = Place()
        place.placeId = int(request.POST["placeId"])
        
        if Review.objects.filter(reviewUser=user, reviewPlace=place).exists():
            ret = "EXIST"
        else:
            review = Review()
            review.reviewUser = user
            review.reviewPlace = place
            review.reviewPointPrice = int(request.POST["reviewPointPrice"])
            review.reviewPointService = int(request.POST["reviewPointService"])
            review.reviewPointLocation = int(request.POST["reviewPointLocation"])
            review.reviewPointCondition = int(request.POST["reviewPointCondition"])
            review.reviewPointComfort = int(request.POST["reviewPointComfort"])
            review.reviewText = request.POST["reviewText"]
            review.save()

        return HttpResponse(ret)
    else :
        return HttpResponse("what?")
示例#2
0
文件: views.py 项目: spondbob/replace
def listReviews(request):
    if request.method == "POST" :
        user = User()
        user.userId = int(request.POST["userId"])
        
        place = Place()
        place.placeId = int(request.POST["placeId"])
        
        typeId = int(request.POST["typeId"])
        
        data = []       
        for r in Review.objects.filter(reviewPlace_id=place).exclude(reviewUser_id=user) :
            dict = {}
            dict['userId'] = r.reviewUser.userId
            dict['userAlias'] = r.reviewUser.userAlias
            dict['reviewPointPrice'] = r.reviewPointPrice
            dict['reviewPointService'] = r.reviewPointService
            dict['reviewPointLocation'] = r.reviewPointLocation
            dict['reviewPointCondition'] = r.reviewPointCondition
            dict['reviewPointComfort'] = r.reviewPointComfort
            dict['reviewText'] = r.reviewText
            average = float(r.reviewPointPrice+r.reviewPointService+r.reviewPointLocation+r.reviewPointCondition+r.reviewPointComfort) / 5
            dict['averagePoint'] = average
            sp = SimilarityProcess()
            dict['similarityValue'] = sp.process(User.objects.get(userId=user.userId), r.reviewUser, typeId)
            dict['newSimilarityValue'] = float(dict['similarityValue']) * average
            data.append(dict)
        
        #''' normalizing similarity on same place
        minV = min(data, key=lambda x:x['similarityValue'])
        maxV = max(data, key=lambda x:x['similarityValue'])
        minValue = minV['similarityValue']
        maxValue = maxV['similarityValue']    
        for dict in data:
            dict["similarityValue"] = float((dict["similarityValue"] - minValue)/(maxValue - minValue))
            dict['newSimilarityValue'] = dict['similarityValue'] * dict['averagePoint']
            dict['averagePoint'] = str(dict['averagePoint'])
            fuzzy = Fuzzy()
            dict['similarityFlag'] = str(fuzzy.process(dict['similarityValue']))
        #'''
            
        data = sorted(data, key=lambda rev: rev['newSimilarityValue'], reverse=True)
        return HttpResponse(json.dumps(data))
    else :
        return HttpResponse("what?")