我喜欢按钮的问题 [英] problem with my like button

查看:106
本文介绍了我喜欢按钮的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码适用于我喜欢的按钮。按钮本身来自html文档,它应该是。但似乎点击时没有任何反应。我不知道如何使代码工作,以便用户可以单击按钮,它实际上存储在数据库中。

任何人都可以看到我的代码有些问题,或者可以做些不同的事情,那会更好吗?



我希望我的问题有道理,有人可以帮助我。



也许确实发生了一些事情,它只是缺少一种显示方式,在这种情况下,我将如何创建该显示?



.html

The below code is for my like button. The button itself comes through on the html document where it is supposed to be. But it seems that nothing happens when clicked. I have no idea how to make the code work, so that a user can click the button, and it actually gets stored in the database.
Can anyone see some problems with my code, or something that could be done different, that would be better?

I hope my question makes sense, and that someone can help me.

Maybe something do happen, and it is just missing a type of display for that, in that case, how would I create that display?

.html

<input type="button" id="like" name="{{company_slug}}" value="Like" />

<script>
$('#like').click(function(){
      $.ajax({
               type: "POST",
               url: "{% url 'search' %}",
               data: {'slug': $(this).attr('name'), 'csrfmiddlewaretoken': '{{csrf_token}}'},
               dataType: "text",
               success: function(response) {
                      alert('You liked this')
                },
                error: function(rs, e) {
                       alert(rs.responseText);
                }
          });
    })
</script>



models.py:


models.py:

class Like(models.Model):
    user = models.ManyToManyField(User, related_name='likes')
    company = models.ForeignKey(Posts)
    date = models.DateTimeField(auto_now_add=True)
    total_likes = models.IntegerField(default=0)



views.py:


views.py:

def like(request):
    vars = {}
    if request.method == 'POST':
        user = request.user #maybe lowercase u
        slug = request.POST.get('slug', None)
        like = get_object_or_404(Posts, slug=slug)

        liked, created = Like.objects.create(like=like)

        try:
            user_liked = Like.objects.get(like=like, user=user)
        except:
            user_liked = None

        if user_liked:
            user_liked.total_likes -= 1
            liked.user.remove(request.user)
            user_liked.save()
        else:
            liked.user.add(request.user)
            liked.total_likes += 1
            liked.save()

    return HttpResponse(simplejson.dumps(vars), mimetype='application/javascript')

推荐答案

('#like')。click(function(){
('#like').click(function(){


.ajax({
type:POST,
url:{%url'搜索'%},
数据:{'slug':
.ajax({ type: "POST", url: "{% url 'search' %}", data: {'slug':


(this).attr('name'), 'csrfmiddlewaretoken':'{{csrf_token}}'},
dataType:text,
成功:函数(响应){
alert('你喜欢这个')
},
错误:函数(rs,e){
alert(rs.responseText);
}
});
})
< / script >
(this).attr('name'), 'csrfmiddlewaretoken': '{{csrf_token}}'}, dataType: "text", success: function(response) { alert('You liked this') }, error: function(rs, e) { alert(rs.responseText); } }); }) </script>



models.py:


models.py:

class Like(models.Model):
    user = models.ManyToManyField(User, related_name='likes')
    company = models.ForeignKey(Posts)
    date = models.DateTimeField(auto_now_add=True)
    total_likes = models.IntegerField(default=0)



views.py:


views.py:

def like(request):
    vars = {}
    if request.method == 'POST':
        user = request.user #maybe lowercase u
        slug = request.POST.get('slug', None)
        like = get_object_or_404(Posts, slug=slug)

        liked, created = Like.objects.create(like=like)

        try:
            user_liked = Like.objects.get(like=like, user=user)
        except:
            user_liked = None

        if user_liked:
            user_liked.total_likes -= 1
            liked.user.remove(request.user)
            user_liked.save()
        else:
            liked.user.add(request.user)
            liked.total_likes += 1
            liked.save()

    return HttpResponse(simplejson.dumps(vars), mimetype='application/javascript')


这篇关于我喜欢按钮的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆