How do I capture multiple values from a URL in Django?
Conditions: I would like to capture ids from a URL. The ids vary in length (consist of numbers only), and there can be multiple ids in the URL. Check out the following two examples:
http://127.0.0.1:8000/library/check?id=53&id=1234
http://127.0.0.1:8000/library/check?id=4654789&id=54777&id=44
The solution may include regex.
urlpatterns = [
path("", view=my_view),
path("<solution_comes_here>", view=check_view, name="check_view"),
]
P.S. all solutions I found on this platform and Django documentation only explain cases for capturing single values from the URL
>Solution :
You use:
urlpatterns = [
path('', view=my_view),
path('check/', view=check_view, name='check_view'),
]
Indeed, the querystring is not part of the path. This can be determined with request.GET. So you can obtain the ids with:
def check_view(request):
ids = request.GET.getlist('id') # ['3654789', '54777', '44']
# …
There is however no guarantee that the ids will only be numerical, so you will need to validate that in the view itself.