簡體   English   中英

如何獲取以前的 url (Django)

[英]How to get the previous url (Django)

我有一個 Post model 需要某個類別才能添加到數據庫中,並且我希望自動生成該類別。 單擊 addPost 按鈕會將您帶到不同的頁面,因此將通過獲取上一頁 url 的一部分來確定類別。

有沒有辦法將上一頁 url 作為字符串獲取?

謝謝

編輯:我在這里添加了我的 AddPost 按鈕。

<aside class="addPost">
    <article>
        <form action="/Forum/addPost">
            <input type="submit" name="submit" value="Add Post"/>
        </form>
    </article>
</aside>

您可以通過使用request.META['HTTP_REFERER']來做到這一點,但如果只有您的標簽上一頁來自您的網站,它將存在,否則 META dict中將沒有HTTP_REFERER 所以要小心並確保您使用的是.get()表示法。

# Returns None if user came from another website
request.META.get('HTTP_REFERER')

注意:當 Django 1.10 是實際版本時,我給出了這個答案。 我不再使用 Django,所以我不知道這是否適用於 Django 2

您可以使用request.META.HTTP_REFERER獲取引用 URL

更多信息在這里: https ://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.META

我無法回答@tryingtolearn 評論,但對於未來的人,您可以使用request.META['HTTP_REFERER']

無需將其添加到您的上下文中,然后將其傳遞給模板,您可以直接將其放入模板中:

    <a href="{{ request.META.HTTP_REFERER }}">Return</a>

更可靠的方法是在 Add Post 按鈕的 URL 中顯式傳遞類別。

“views.py”中可以得到之前的url ,如下圖:

# "views.py"

from django.shortcuts import render

def test(request):
    
    pre_url = request.META.get('HTTP_REFERER') # Here
        
    return render(request, 'test/index.html')

也可以在Django模板中獲取之前的url ,如下圖:

{# "test/index.html" #}

{{ request.META.HTTP_REFERER }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM