简单的Ajax请求将变量从模板保存到Django后台
我在用户资料模型中有一个分数字段,并且在jquery中有一个变量叫total。
我想在点击提交按钮后,把total的值存储到分数字段里。
为此,我想使用ajax来实现。
这里我尝试了一些东西。
$('#myButton').click(function(){
var bjpFan=localStorage['bjpFan'];
var total = parseInt(localStorage['total']);
$.ajax({
url: "/poll/score/",
type:"GET",
success: function(responseHTML){
{% for sc in score1 %}
var s={{sc.score}}
alert(s);
{% endfor %}
}
});
});
现在我想把这个值保存到后台。怎么才能保存这个单一的值呢?
view.py
def score(request):
if request.is_ajax():
if request.method == 'GET':
score1=UserProfile.objects.all()
print "akash"
print score1
print type(score1)
response = json.dumps({"SCORE":score})
return HttpResponse(response,mimetype="application/json")
model.py 是
class UserProfile(models.Model):
user = models.ForeignKey(User)
score = models.IntegerField(max_length = 50, blank = True,null = True)
我想把total存储到分数里……但是total是一个在jquery中声明的变量。
1 个回答
2
试试这个方法:
你的 HTML 代码:
$('#myButton').click(function(){
var bjpFan=localStorage['bjpFan'];
var userid = //get your user id in some way you can
var total = parseInt(localStorage['total']);
$.ajax({
url: "/poll/score/",
type:"GET",
data: {total:total,userid:userid}
}).done(function(data){
alert(data);//do what you want to do with response
});
});
你的 urls.py 文件:
url(r'/poll/score/$', 'score', name='score'),
你的 views.py 文件:
def score(request):
if request.is_ajax():
if request.method == 'GET':
user = UserProfile.objects.get(id=request.GET.get('userid'))
user.score = request.GET.get('total')
user.save()
return HttpResponse("%s" % user.score )
就这样。