Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.5k views
in Technique[技术] by (71.8m points)

Django: How to insert variable into path() kwargs

I'm trying to pass a boolean flag to my view:

def lesson_detail_view(request, number, **kwargs):
    pass

The documentation has an example of passing in kwargs, but only as hard coded.

path('blog/<int:year>/', views.year_archive, {'foo': 'bar'})

My problem is getting the variable into the url pattern. I've tried to insert a variable the same way the path variables work with angle brackets, but it's not working.

path('lesson-<number>/', views.lesson_detail_view, kwargs={'show_popup': '<show_popup>'}, name='lesson_detail'),

The following is how I want to call the url:

redirect("lesson:lesson_detail", number=1, show_popup=True,)

Am I barking up the wrong tree? I feel like this should be pretty straight forward, but I'm not finding anything.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Do you want the <show_popup> to be provided by the user? If so you should look into using get parameters.
In the view you would access get parameters using

request.GET.get('show_popup', None)

If you want to put a variable from where the urls.py file into the view:

path('lesson-<number>/', views.lesson_detail_view, kwargs={'show_popup': show_popup}, name='lesson_detail')

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...