如何将变量从模板传递到 Django 中的视图?

How to pass a variable from template to views in django?

index.html

{% if request.session.visitor_language == 'en'  %}
                                
   {% with current_page=request.resolver_match.url_name %} 
       {{current_page}}    
   {% endwith %}

   My name is  Khan <a style="color: blue;" href="{% url 'change_language' %}?current_page={{current_page}}">BN</a>
{% endif %}

Here I am trying to send the value of current_page to views through urls

urls.py

path('home/change_lang/$', views.change_visitor_language, name='change_language'), 

views.py

def change_visitor_language(request,current_page):
    print(current_page)

我从屏幕上得到的错误

TypeError at /home/change_lang/$

我在命令行中遇到的错误

TypeError: change_visitor_language() missing 1 required positional argument: 'current_page'

由于您将 current_page 作为 query param 发送,因此它不会作为方法参数添加到视图中。

您可以像这样在您的视图中访问它:

def change_visitor_language(request):
    current_page = request.GET.get('current_page')

此外,将您的HTML改成这样

{% if request.session.visitor_language == 'en'  %}
                                
   {% with current_page=request.resolver_match.url_name %} 
       {{current_page}}    
       My name is  Khan <a style="color: blue;" href="{% url 'change_language' %}?current_page={{current_page}}">BN</a>
   {% endwith %}

{% endif %}