gpt4 book ai didi

javascript - 尝试在模型上创建“赞”按钮

转载 作者:行者123 更新时间:2023-12-03 06:36:41 25 4
gpt4 key购买 nike

几天来我一直在努力为模型实现“点赞”按钮。我有一个像这样的模型

class Feed(models.Model):
user=models.ForeignKey(User,on_delete=models.CASCADE,related_name='feeds')
text=models.TextField(blank=False,max_length=500)
user_concerns=models.ManyToManyField(User,related_name="likes",blank=True)
@property
def total_concerns(self):
return self.user_concerns.count()

我试图让用户喜欢前端的提要。所以我有这个 View 和网址

#urls.py
urlpatterns = [
url(r'^like/$', views.like, name='like'),]

#views.py
@require_POST
def like(request):
if request.method == 'POST':
user = request.user
slug = request.POST.get('slug', None)
feed = get_object_or_404(Feed, slug=slug)

if feed.user_concerns.filter(id=user.id).exists():
# user has already liked this company
# remove like/user
feed.user_concerns.remove(user)
message = 'You disliked this'
else:
# add a new like for a company
feed.user_concerns.add(user)
message = 'You liked this'

ctx = {'likes_count': feed.total_concerns, 'message': message}
# use mimetype instead of content_type if django < 5
return HttpResponse(json.dumps(ctx), content_type='application/json')

和模板

<p>{{feed_detail.text|linebreaks}} </p>
<p> {{feed_detail.total_concerns}} concern{{feed_detail.total_concerns|pluralize:'s'}}</p>
<p> {{feed_detail.pub_date|naturaltime|capfirst}} </p>
<input type="button" id="like" name="{{feed_detail.slug}}" value="Like" />

<script>

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

$.ajax({

type: "POST",
url: "{% url 'like' %}",
data: {'slug': '{{feed_detail.slug}}' , 'csrfmiddlewaretoken': '{{ csrf_token }}'},
dataType: "json",
success: function(response) {
alert(response.message);
alert('Company likes count is now ' + response.likes_count);
},
error: function(rs, e) {
alert(rs.responseText);
}
});
})

</script>

它根本没有显示任何错误。它显示按钮,但单击时没有执行任何操作,请帮助我,因为我对此感到疯狂

最佳答案

也许您还没有包含 jQuery。

首先,在 settings.py 中定义静态目录。

STATIC_URL = '/static/'

在您的应用程序文件夹中创建一个静态文件夹。将 jQuery js 文件放置在 app_name/static/app_name/js 中。然后在您的模板中:

<head>
{% load staticfiles %}
<script src="{% static "app_name/js/bootstrap.min.js" %}"></script>
</head>

关于javascript - 尝试在模型上创建“赞”按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38168825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com