36
Depends on what characters you care about. Like the docs say, \w
will give you an alphanumeric character or an underscore.
62
In newer versions of Django such as 2.1 you can use
path('polls/<str:poll_id>', views.polls_detail)
as given here Django URL dispatcher
def polls_detail(request,poll_id):
#process your request here
- [Django]-Django – view sql query without publishing migrations
- [Django]-Access-Control-Allow-Origin in Django app
- [Django]-Django – limiting query results
55
for having a string parameter in url you can have:
url like this:
url(r'^polls/(?P<string>[\w\-]+)/$','polls.views.detail')
This will even allow the slug strings to pass
eg:strings like node-js etc.
- [Django]-ManyRelatedManager object is not iterable
- [Django]-Where should signal handlers live in a django project?
- [Django]-MySQL vs PostgreSQL? Which should I choose for my Django project?
20
Starting in Django 2.0 it is easier to handle string parameters in URLs with the addition of the slug symbol, which is used just like int in urls.py:
from django.urls import path
urlpatterns = [
path('something/<slug:foo>', views.slug_test),
]
And in your function-based or class-based view you would handle it just like any other parameter:
def slug_test(request, foo):
return HttpResponse('Slug parameter is: ' + foo)
- [Django]-How to return custom JSON in Django REST Framework
- [Django]-Limit foreign key choices in select in an inline form in admin
- [Django]-Django Model – Get distinct value list
10
From Django 2.0 onward, path
has been introduced. path
does not take reg ex in urls, hence it is meant to be a simplified version of the older url
From 2.0 onward you can use path instead like below :
path('polls/<poll_id>', views.polls_detail)
string path parameters need not be explicitly specified, as default data type for path parameters is string itself.
Ref : https://docs.djangoproject.com/en/2.0/releases/2.0/#whats-new-2-0
- [Django]-Where does pip install its packages?
- [Django]-Can't compare naive and aware datetime.now() <= challenge.datetime_end
- [Django]-Django: For Loop to Iterate Form Fields
1
If you are using Django version >= 2.0, then this is done simply like below.
from django.urls import path
urlpatterns = [
...
path('polls/<string>/$','polls.views.detail')
...
]
Source: https://docs.djangoproject.com/en/2.0/ref/urls/#django.urls.path
- [Django]-Get list item dynamically in django templates
- [Django]-How to manage local vs production settings in Django?
- [Django]-Check if key exists in a Python dict in Jinja2 templates
0
In case your angle-bracket argument is a path, i.e. contains "/", you’ll have to use path:
.
Example:
path('section/<path:some_path>,app.views.some_view,name='some_name')
Source: https://docs.djangoproject.com/en/4.0/topics/http/urls/#path-converters
(EDITED)
"str – Matches any non-empty string, EXCLUDING the path separator, ‘/’. This is the default if a converter isn’t included in the expression.
slug – Matches any slug string consisting of ASCII letters or numbers, plus the hyphen and underscore characters. For example, building-your-1st-django-site.
path – Matches any non-empty string, INCLUDING the path separator, ‘/’. This allows you to match against a complete URL path rather than a segment of a URL path as with str."
- [Django]-How to produce a 303 Http Response in Django?
- [Django]-Why is factory_boy superior to using the ORM directly in tests?
- [Django]-How to use regex in django query