8👍
I believe each group in the regex is passed as a parameter (and you can name them if you want):
(r'^v1/(\d+)/(\d+)/$', r'custom1.views.v1')
Check out the examples at: https://docs.djangoproject.com/en/dev/topics/http/urls/. You can also name your groups.
12👍
Supposing you want the URL to look like v1/17/18
and obtain the two parameters 17
and 18
, you can just declare the pattern as:
(r'^v1/(\d+)/(\d+)$', r'custom1.views.v1'),
Make sure v1
accepts two arguments in addition to the request object:
def v1 ( request, a, b ):
# for URL 'v1/17/18', a == '17' and b == '18'.
pass
The first example in the documentation about the URL dispatcher contains several patterns, the last of which take 2 and 3 parameters.
- Convert unicode to datetime proper strptime format
- Django admin add custom filter
- No fixture named 'X' found
12👍
Somewhere along the line I got in the habit of naming them directly in the regex, although honestly I don’t know if it makes a difference.
#urls:
(r'^v1/(?P<variable_a>(\d+))/(?P<variable_b>(\d+))/$', r'custom1.views.v1')
#views:
def v1(request, variable_a, variable_b):
pass
Also, it’s very Django to end the url with a trailing slash – Django Design Philosophy, FYI
6👍
in django 2.x and 3.x:
url:
path("courses/<slug:param1>/<slug:param2>", views.view_funct, name="double_slug")
template:
<a href="{% url 'double_slug' param1 param2 %}">Click {{param2}}!</a>
- Django __call__() missing 1 required keyword-only argument: 'manager'
- Setting HTTP_REFERER header in Django test