我正在努力使一个向上投票和向下投票的功能在我的网站。然而,有一个我不喜欢的特殊行为,那就是每当用户点击按钮时,他不应该被重定向到另一个页面,而应该保持在同一页面上。
点击upvote按钮后,会转到urlhttp://localhost:8001/upvote/2/
,这是我不想要的。我希望它保持在同一页面上,即http://localhost:8001/view-supplore/
models.py
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=254, unique=True)
# CUSTOM USER FIELDS
firstname = models.CharField(max_length=30)
lastname = models.CharField(max_length=30)
upvotes = models.IntegerField(default=0)
downvotes = models.IntegerField(default=0)
objects = UserManager()
def get_absolute_url(self):
return "/users/%i/" % (self.pk)
def get_email(self):
return self.email
views.py
def Viewsupplier(request):
title = "All Suppliers"
suppliers = User.objects.filter(user_type__is_supplier=True)
context = {"suppliers":suppliers, "title":title}
return render(request, 'core/view-suppliers.html', context)
@login_required
def upvote(request, pk):
supplier_vote = get_object_or_404(User, id=pk)
supplier_vote.upvotes += 1
supplier_vote.save()
upvote_count = supplier_vote.upvotes
context = {"supplier_vote":supplier_vote, "upvote_count":upvote_count}
return render(request, "core/view-suppliers.html", context)
@login_required
def downvote(request, pk):
supplier_vote = get_object_or_404(User, id=pk)
supplier_vote.downvotes -= 1
supplier_vote.save()
downvote_count = supplier_vote.downvotes
context = {"supplier_vote":supplier_vote, "downvote_count":downvote_count}
return render(request, "core/view-suppliers.html", context)
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('upvote/<int:pk>/', views.upvote, name='upvote'),
path('downvote/<int:pk>/', views.downvote, name='downvote'),
]
查看-supplier.html
<table class="table table-borderless table-data3">
<thead>
<tr>
<th>No</th>
<th>Country</th>
<th>Votes</th>
</tr>
</thead>
<tbody>
{% for supplier in suppliers %}
<tr>
<td>{{forloop.counter}}</td>
<td>{{supplier.country}}</td>
<td>
<div class="table-data-feature">
<a href="{% url 'upvote' supplier.id %}" class="m-r-10">
<button class="item" data-toggle="tooltip" data-placement="top" title="Like">
<i class="zmdi zmdi-thumb-up"></i>{{upvote_count}}</button>
</a>
<a href="{% url 'downvote' supplier.id %}">
<button class="item" data-toggle="tooltip" data-placement="top" title="Dislike">
<i class="zmdi zmdi-thumb-down"></i>{{downvote_count}}</button>
</a>
</div>
</td>
</tr>
{% empty %}
<tr><td class="text-center p-5" colspan="7"><h4>No supplier available</h4></td></tr>
{% endfor %}
</tbody>
</table>
您需要实现一个API(应用程序编程接口)来异步发送upvote和downvote。Django REST框架是创建您自己的API的方法。你可以在YouTube上看几个小时关于这个主题的视频教程。Django REST框架的文档非常好读。Django是一个服务器端的Web框架,这意味着只有当您提交给服务器时,它才能帮助您。您绝对可以重新加载相同的页面:
return HttpResponseRedirect(reverse('<app_name>:<url_name>'))
但是,会有一个中断。因此,处理这类行为的推荐方法是使用JavaScript的API(如REST框架的Fetch API)进行异步调用
这是第2页中的代码: 我找不到怎么解决的是,当我点击第1页的选项2时,除了打开第2页,它应该显示给我选择的选项“chiclayo”和这个选项的自我内容;我希望在点击第1页的选项3时发生同样的事情,该选项应该选择“Trujillo”选项并向我显示其内容。我已经尝试了“onclick”事件,但我没有得到结果,我不知道这是正确的方式还是有更好的选择;也许使用javascript或jquery代码。我很感
问题内容: 如何使用PHP重定向到同一页面? 例如,在本地我的网址是: 如何在我的网站内重定向到另一个页面,例如: 我知道这可能是错误的,但是我真的需要把整个内容放进去吗?如果以后不是呢? 有没有办法做这样的事情?另外,我有很多代码,然后在处理完一些代码后结束…我试图使用该代码进行重定向。这可以吗? 问题答案: 有许多不同的(docs)属性可返回有关当前页面的信息,但是我的首选方法是使用: 域之后
我正在用Express开发一个具有聊天功能的多页面web应用程序(由socket.io提供)。用户可以邀请其他人到私人共享聊天室(该聊天室还有其他组件,如共享画板)。我想在完成邀请事务后将两个用户(邀请者和被邀请者)重定向到不同的URL。 因为socket.io不能访问路由的请求和响应对象,所以我尝试将socket.io实例传递到路由处理中。除了重复事件处理程序堆积在页面刷新上的问题之外,Expr
我想在登录后将用户重定向到同一页面。该场景是,如果用户未登录,将重定向到登录页面。在登录页面上,当他单击一个可用的用户选项时,我想存储用户id,然后将他重定向回他来自的同一页面。为此,我使用以下代码: 在应用程序中提供帮助。rb: 在SigninController中: 在登录/索引页中:
问题内容: 我正在使用ajax调用在服务文件中执行功能,并且如果响应成功,我想将页面重定向到另一个URL。目前,我正在通过使用简单的js“ window.location = response[‘message’];”来做到这一点。但是我需要用angularjs代码替换它。我看过关于的各种解决方案,他们使用了$location。但是我是新手,对实现它有困难。 问题答案: 您可以使用Angular
我有一个两步验证表单,这意味着第一个用户输入得到验证(在ValidatecKetData控制器中),如果一切正常,您可以进入下一个表单页面,我可以通过 问题:在第二页,用户需要上传一个文件,如果他不这样做,验证失败。 如果是这种情况,验证器类立即重定向,因为它是后路由,所以不起作用。 所以我创建了一个这样的获取路线: 并将其放入-方法: 我把它放到了-method中,因为如果用户不在第二页附加文件