自已写了个django ajax的函数。不知道哪里有问题总是不能执行成功?

要实现的功能是,当查看一个资源需要扣掉这个资源的积分然后显示出真的资源地址,并 调用ajax,无刷新实现

models.py
class Zyuser_MeiMei(models.Model):

author = models.ForeignKey(settings.AUTH_USER_MODEL, null=True)
mmei = models.ForeignKey('MeiMei', verbose_name="资源", null=True)
mark = models.BooleanField(default =False, verbose_name=_(u'用户是否查看过'))

def __unicode__(self):
    return self.author.username
class Meta:
    verbose_name_plural = u'用户查看vip'


views.py

用户查看扣积分函数

@login_required
@csrf_exempt
def look_mm(request, mm_id):

author = request.user
mm = MeiMei.objects.get(id = mm_id)
print 'adsfasdf'
if author.levels < mm.level:
    #raise "您的积分不够用了,请联系管理人员充积分!"
    #积分不够直接跳转到。充值页面!
    return render(request,"meimei/jifen.html")
else:
    User.objects.filter(username = author.username).update(levels=F('levels') - mm.level)
    u_m = Zyuser_MeiMei.objects.update_or_create(author=author, mmei=mm)
    u_m.mark = True
print 'aaaaaaaaaa'
return u_m

.html页面

点击查看资源

<script src="http://libs.baidu.com/jquery/...;></script>
<script type="text/javascript">
function vip_chakan(o, meimei.id){

    $.ajax({
        type:"POST",
        url:"/look_mm/"+{{meimei.id}}+"/",
        dataType:"json",
        processData:false,  // 告诉jquery不转换数据
        contentType:false,  // 告诉jquery不设置内容格式
        success:function(u_m){
            alert(u_m.mark);
        }
        error:function(){
            alert("请重试!")
        }
    });

}
</script>

url.py
url(r'^look_mm/(?P<mm_id>[0-9]+)/$', login_required(look_mm), name='lookmm'),

不知哪里出了问题。那个views.py 函数总是不执行?

阅读 2.5k
2 个回答

veiw.py 是在哪里调用的,能打个断点debug下, 或者添加日志看问题出现在什么地方。

搞出来了。记录一下:

views.py

@login_required
@csrf_exempt
def look_mm(request, mm_id):
    author = request.user
    ret = {'status': 0, 'u_m': ''}
    mm = MeiMei.objects.get(id = mm_id)
    try:
        User.objects.filter(username = author.username).update(levels=F('levels') - mm.level)
        Zyuser_MeiMei.objects.update_or_create(author=author, mmei=mm)
        ret['status'] = 1
        ret['u_m'] = True
    except:
    return JsonResponse(ret)

html

<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script> 
<script type="text/javascript">
function vip_chakan(){
        $.ajax({
            type:"POST",
            url:"/look_mm/"+{{meimei.id}}+"/",
            dataType:"json",
            processData:false,  // 告诉jquery不转换数据
            contentType:false,  // 告诉jquery不设置内容格式
            success:function(data, status){
                if(data.status == 1){
                $("#chakan").css('display','none'); 
                $("#okchakan").css('display','inline');                
                                    }
            }
        });
}
</script>

原先涵数里的那个积分不够的判断,我直接放在模板里了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题