<p>这可以通过使用AJAX轻松实现</p>
<p>与其将<code>supplier_id</code>作为URL的一部分提供,不如将AJAX中的<code>supplier_id</code>发送到Django Upvote视图。你可以这样做</p>
<p><strong>HTML:</strong></p>
<pre><code><button id="{{ supplier_id }}" class="item upvote" data-toggle="tooltip" data-placement="top" title="Like">
<i class="zmdi zmdi-thumb-up"></i>{{upvote_count}}
</button>
</code></pre>
<p>使用Javascript从单击按钮事件中提取<code>supplier_id</code></p>
<p><strong>JavaScript:</strong></p>
<pre><code>$('.upvote').on('click', function () {
var supp_id = $(this).attr('id');
$ajax({
type: 'POST',
url: '/upvote/',
data: {
supplier_id: supplier_id,
},
success: function (data) {
if (data.status == 'success') {
/* Your upvote logic like updating the color of button or showing Unlike etc.,*/
}
}
});
});
</code></pre>
<p>将Django<strong>url.py中的url模式更改为</p>
<p><code>urlpatterns = [path('upvote/', views.upvote, name='upvote'),</code></p>
<p><strong>视图.py</strong></p>
<pre><code>def upvote(request):
if request.method == 'POST':
supplier_id = request.POST['supplier_id']
# Your DB update logic goes here....
return JsonResponse({'status': 'success'})
else:
return JsonResponse({'status': 'Error'})
</code></pre>
<p><em>同样,您也可以对<code>downvote</code>执行相同的操作</em></p>