簡體   English   中英

從settings.py中的登錄URL反轉時,如何將參數傳遞給django的登錄視圖?

[英]How to pass a parameter to login view in django while reversing from login url in settings.py?

我遇到以下問題:我有一個需要在登錄時傳遞參數的應用程序,因此url結構如下-> http://baseURL.com/paramter/

其中“參數”是一個變量,稍后從數據庫中進行匹配。

該項目工作正常,除非出現以下情況: http : //baseURL.com/paramter/home

其中“ home”是一個視圖,要求用戶通過@login_required登錄,以便項目檢查settings.py文件中的login_url並嘗試去那里,然后出現以下錯誤:

NoReverseMatch at /parameter/home/

Reverse for 'login_view' with arguments '()' and keyword arguments '{}' not found. 

在我的settings.py中

LOGIN_URL = reverse_lazy('login_view')

在我的views.py中

def login_view(request, parameter):

在urls.py中

url(r'^(?P<parameter>\w+)/$', 'myproject.apps.myapp.views.login_view'),

那么,如果settings.py在url配置之前進入登錄視圖,該如何傳遞該參數?

您可以簡單地將參數作為kwargs傳遞給反向函數

LOGIN_URL = reverse_lazy('login_view', kwargs={'parameter': 'login_parameter'})

https://docs.djangoproject.com/en/dev/ref/urlresolvers/#reverse

通常,登錄網址不屬於settings.py 您只需將其放入您的urls.py

暫無
暫無

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

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