我有一个功能:
def search_result(request):
if request.method =='POST':
data = request.body
qd = QueryDict(data)
place = qd.values()[2]
indate = qd.values()[3]
outdate = qd.values()[0]
url = ('http://terminal2.expedia.com/x/mhotels/search?city=%s&checkInDate=%s&checkOutDate=%s&room1=2&apikey=%s') %(place, indate, outdate, MY_API_KEY)
req = requests.get(url).text
json_data = json.loads(req)
results = []
for hotels in json_data.get('hotelList'):
results.append(hotels.get('localizedName'))
return HttpResponse(results)
现在我想在其他函数中使用func1的返回来渲染这样的模板:
def search_page(request):
r = search_result(request)
d = r.content
return render(request,'search.html', {'res':d})
这实际上不起作用。 有没有办法做我想要的(不使用课程)? 我从模板表单通过ajax发布帖子,我的第一个函数正常工作,并在控制台中打印结果。当我尝试在下一个函数中使用我的响应来在模板中呈现它时,会出现问题。这就是为什么我要求帮助我。您是否有任何想法可以让我的第一个功能对另一个功能可见?
答案 0 :(得分:0)
您已定义request
以获取request
参数,但是当您在第二个函数中调用它时,您不会传递任何参数。
如果你传入HttpResponse
它应该有用。
编辑:您正在寻找结果,所以我想您可以返回它们而不是def func1(request):
......
results = []
for hotels in json_data.get('hotelList'):
results.append(hotels.get('localizedName'))
return results
def funk2(request):
f = funk1(request)
return render(request,'search.html', {'res':f})
(也许我们需要更多关于您要完成的内容的信息)
<script type="text/javascript">
$('#submitContainer').click(function(){
$('.picker').html('');
$("textarea").each(function() {
$(this).text($(this).val());
});
var content = $('#container').html();
$('#hid').val(content);
});
</script>