Ajax支持Djang中的按钮

2024-10-03 13:26:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经为like按钮构建了下一个架构,但是它不起作用。以下是我的档案:

在模型.py在

class Comentario (models.Model):
    titulo = models.CharField(max_length=50)
    autor = models.ForeignKey (Perfil, null=True, blank=True, on_delete=models.CASCADE)
    archivo = models.FileField(upload_to='media/%Y/%m/%d', null=True, blank=True)
    slug= models.SlugField(default=0)
    likes = models.ManyToManyField(Perfil, related_name="likes")

    def __str__(self):
        return (self.titulo)

    @property

    def total_likes(self):
        return self.likes.count()

    def save(self, *args, **kwargs):
        self.slug=slugify(self.titulo)
        super(Comentario, self).save(*args, **kwargs)

在视图.py在

^{pr2}$

在网址.py在

url(r'^like/$', login_required(views.like), name='like')

.html格式

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

                <script>
                $('#like').click(function(){
                     $.ajax("/home/like/",{
                            type: "POST",
                            url: "{% url 'home:like' %}",
                            data: {'slug': $(this).attr('titulo'), 'csrfmiddlewaretoken': '{{ csrf_token }}'},
                            dataType: "json",
                            success: function(response) {

                            alert(' likes count is now ' + response.likes_count);
                        },
                            error: function(rs, e) {
                            alert(rs.responseText);
                            }
                        }); 
                    })
                </script>

当我按下按钮的时候,它好像什么都不做。控制台告诉我:

htt后jquery.min.js:4 p:/127.0.0.1.8000/home/like/404(未找到)

和:http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js

问题是什么?在

谢谢你的帮助


Tags: namepyselftrueurlhomemodelsdef
1条回答
网友
1楼 · 发布于 2024-10-03 13:26:06

有一个问题是你的视图没有被slug字段找到Comentario。您的ajax{ 'slug' : $(this).attr('titulo') ...正确吗?您确定'titulo'是slug的正确字段还是必须是$(this).attr('slug')?试试这个:

$.ajax("/home/like/",{
                        type: "POST",
                        url: "{% url 'home:like' %}",
                        data: {'slug': $(this).attr('name'), 'csrfmiddlewaretoken': '{{ csrf_token }}'},
                        dataType: "json",
                        success: function(response) {

                        alert(' likes count is now ' + response.likes_count);
                    },
                        error: function(rs, e) {
                        alert(rs.responseText);
                        }
                    }); 

相关问题 更多 >