我正在创建一个类似eBay的简单电子商务网站,以介绍django。为了从观察列表中删除一个项目,我在两个不同的HTML文件中放置了两个相同的链接,也就是说,我可以从watchlist.html
页面中删除该项目,也可以从保存为listing.html
的项目页面中删除。两个页面的url如下所示:
<a href="{% url 'removeFromWatchlist' item.id %}"> Remove from watchlist </a>
现在,在我的views.py
中,我想根据请求呈现不同的页面。例如,如果有人从listing.html
单击了从观察列表中删除,则链接应再次重定向到listing.html
,watchlist.html
也是如此。
我尝试了using request.resolver_match.view_name
,但这给了我"removeFromWatchlist",因为这两个请求的url命名空间是相同的。
有没有什么方法可以根据url请求的来源呈现两个不同的HTML页面?此外,这是我在这里的第二个问题,所以很抱歉格式不正确或不正确。
您可以检查视图的request.META
属性中的HTTP_REFERER以获取引用请求的url,如下所示:
from django.shortcuts import redirect
def myview(request):
...
return redirect(request.META.get("HTTP_REFERER"))#Or however you prefer redirecting
https://docs.djangoproject.com/en/3.1/ref/request-response/#django.http.HttpRequest.META