如何区分来自不同 HTML 页面但在 views.py 中具有相同命名空间的两个 url 请求?

How can I differentiate between two url requests from different HTML pages but with the same namespace in views.py?

我正在创建一个简单的类似 eBay 的电子商务网站来介绍 django。为了从监视列表中删除项目,我将两个相同的 link 放在两个不同的 HTML 文件中,也就是说,我可以从 watchlist.html 页面或从项目的另存为 listing.html 的页面。两个页面的 url 如下所示:

             <a href="{% url 'removeFromWatchlist' item.id %}"> Remove from watchlist </a>

现在,在我的 views.py 中,我想根据请求呈现不同的页面。例如,如果有人从 listing.html 单击 从监视列表中删除 ,则 link 应该再次重定向到 listing.html,[=14= 也是如此].

我尝试了 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