V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX  ›  Python

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

  •  
  •   python30 · 2018-12-18 10:47:37 +08:00 · 1921 次点击
    这是一个创建于 2154 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要实现的功能是,当查看一个资源需要扣掉这个资源的积分然后显示出真的资源地址,并 调用 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 页面

    <a href="#;" onClick="vip_chakan(this, {{ meimei.id }});">点击查看资源</a>

    <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></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 函数总是不执行?
    10 条回复    2018-12-18 16:12:25 +08:00
    suyuyu
        1
    suyuyu  
       2018-12-18 10:49:43 +08:00
    axaj???
    meetfly
        2
    meetfly  
       2018-12-18 10:53:48 +08:00
    axaj ? ajax ?
    RRHCT
        3
    RRHCT  
       2018-12-18 10:54:26 +08:00
    贴图片多好,这代码排版不想看
    python30
        4
    python30  
    OP
       2018-12-18 11:05:16 +08:00
    ajax 打错了。不好意思。
    python30
        5
    python30  
    OP
       2018-12-18 11:05:42 +08:00
    @RRHCT







    图片来了
    xpresslink
        6
    xpresslink  
       2018-12-18 11:33:24 +08:00
    你用的 django 是什么版本?

    你这个只传一个 id 的情况,应该用 ajax GET 就可以了
    要是用 POST 你就不要再构造 url 来传参数了,直接构造一个 json 对象把 id 放里面 POST 到后端。
    xpresslink
        7
    xpresslink  
       2018-12-18 11:35:37 +08:00
    你在浏览器里面 F12 在控制台调试一下,看看 ajax 到底传数据没有

    后端的视图里面放个断点或直接 print 一下没就知道问题出哪里了?
    careofzm
        8
    careofzm  
       2018-12-18 11:59:40 +08:00
    你是不是认错了一个妹妹
    python30
        9
    python30  
    OP
       2018-12-18 16:11:23 +08:00
    @careofzm
    没。一个是资料
    另一个是资料与用户相关链的一个模型。现在搞出来了。
    python30
        10
    python30  
    OP
       2018-12-18 16:12:25 +08:00
    @xpresslink 谢谢。已研究出来了




    这样子。不知道合理不。但是能成功执行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2606 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 02:52 · PVG 10:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.