我需要将旧值更改为模板文件中的新值。
实际上,当用户输入10位数时,手机号码python函数会调用。如果我检查日志它显示的值,但在html文件中它没有显示值。如何在views.py中第二次调用函数获取该值?
views.py
from django.views.decorators.csrf import csrf_exempt
import json
@csrf_exempt
def default(request):
if request.is_ajax():
print("inside the ajax")
phone_no = request.POST.get('phone_no')
print(phone_no)
dict = {'phone_no': phone_no}
template_name = 'mobile_recharge.html'
extended_template = 'base.html'
dummy_var = 'test'
print(dummy_var)
if request.user.is_authenticated():
extended_template = 'base_login.html'
return render(request,template_name, {'extended_template': extended_template,'phone_no': phone_no,'dummy_var': dummy_var})
template_name = 'mobile_recharge.html'
extended_template = 'base.html'
dummy_var = 'test'
if request.user.is_authenticated():
extended_template = 'base_login.html'
return render(
request, template_name,
{'extended_template': extended_template,'dummy_var': dummy_var}
)
脚本
<script type="text/javascript">
$(document).ready(function () {
$('#phone_number').on('input', function () {
if ($(this).val().length >= 10) {
alert("user enter 10 digits numbers");
var phone_no = $('#phone_number').val()
console.log(phone_no);
$.ajax({
type: "POST",
url: "http://localhost:8090/",
data: {'phone_no' : phone_no},
dataType: "json",
success: function(msg)
{
//alert(msg.phone_no);
}
});
return;
}
});
});
</script>
HTML
{{phone_no}} {{ dict }} {{dummy_var}}
如果我在模板中调用上面的变量。我没有得到任何结果。如何获得结果?
答案 0 :(得分:0)
试试这个:
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponseForbidden
import json
@csrf_exempt
def default(request):
if request.is_ajax() and request.user.is_authenticated() and 'phone_no' in request.POST:
phone_no = request.POST['phone_no']
dummy_var = 'test'
dict = {'phone_no': phone_no}
context = {'phone_no': phone_no, 'dict': dict, 'dummy_var ': dummy_var}
return render(request, 'mobile_recharge.html', context)
else:
HttpResponseForbidden()
如果您确实需要打印变量,请改用日志记录。
答案 1 :(得分:0)
您可以在official tutorial中看到如何将变量添加到django模板上下文中。您可以轻松地使用Django Debug Toolbar调试此上下文。
您可能希望使用login_required decorator并依靠django身份验证系统来设置登录模板。另一个建议:不要使用print
进行调试,您可以使用logging module或snippet进行快速查找。
注意:您的问题有一个令人困惑的代码,我认为您粘贴了一些部分