Feidhmeanna fóntais ``django.urls ``Link to this heading
``droim () `Link to this heading
The reverse() function can be used to return an absolute path reference
for a given view and optional parameters, similar to the url tag:
- reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None, *, query=None, fragment=None)Link to this definition
viewname can be a URL pattern name or the
callable view object used in the URLconf. For example, given the following
url:
from news import views
path("archive/", views.archive, name="news-archive")
is féidir leat aon cheann de na nithe seo a leanas a úsáid chun an URL a aisiompú:
# using the named URL
reverse("news-archive")
# passing a callable object
# (This is discouraged because you can't reverse namespaced views this way.)
from news import views
reverse(views.archive)
Má ghlacann an URL le hargóintí, féadfaidh tú iad a chur i args`. Mar shampla:
from django.urls import reverse
def myview(request):
return HttpResponseRedirect(reverse("arch-summary", args=[1945]))
Is féidir leat kwargs a rith freisin in ionad args. Mar shampla:
>>> reverse("admin:app_list", kwargs={"app_label": "auth"})
'/admin/auth/'
Ní féidir args agus kwargs a chur chuig ``reverse () ``ag an am céanna.
Mura féidir aon mheaitseáil a dhéanamh, ardaíonn ``reverse () ``eisceacht a:class: ~django.urls.noReverseMatch.
Is féidir leis an bhfeidhm reverse () ``éagsúlacht mhór patrúin léirithe rialta a aisiompú le haghaidh URLanna, ach ní gach ceann is féidir. Is é an príomhtheorannú i láthair na huaire nach féidir roghanna malartacha a bheith sa phatrún ag baint úsáide as an gcarachtar barra ingearach ("|"``). Is féidir leat patrúin den sórt sin a úsáid go sásta chun URLanna atá ag teacht isteach agus iad a sheoladh chuig tuairimí, ach ní féidir leat patrúin den sórt sin a aisiompú.
Ligeann an argóint current_app duit leid a sholáthar don réiteach a léiríonn an feidhmchlár lena mbaineann an radharc atá á fhorghníomhú faoi láthair. <topics-http-reversing-url-namespaces>Úsáidtear an argóint current_app seo mar leid chun spásanna ainmneacha feidhmchláir a réiteach i URLanna ar chásanna iarratais ar leith, de réir straitéise réitigh URL:ref: `spaced ainmspaced URL `.
Is é an argóint urlconf an modúl URLConf ina bhfuil na patrúin URL le húsáid chun aisiompú. De réir réamhshocraithe, úsáidtear an URLConf fréimhe don snáithe reatha.
The query keyword argument specifies parameters to be added to the returned
URL. It can accept an instance of QueryDict (such as
request.GET) or any value compatible with urllib.parse.urlencode().
The encoded query string is appended to the resolved URL, prefixed by a ?.
The fragment keyword argument specifies a fragment identifier to be
appended to the returned URL (that is, after the path and query string,
preceded by a #).
Mar shampla:
>>> from django.urls import reverse
>>> reverse("admin:index", query={"q": "biscuits", "page": 2}, fragment="results")
'/admin/?q=biscuits&page=2#results'
>>> reverse("admin:index", query=[("color", "blue"), ("color", 1), ("none", None)])
'/admin/?color=blue&color=1&none=None'
>>> reverse("admin:index", query={"has empty spaces": "also has empty spaces!"})
'/admin/?has+empty+spaces=also+has+empty+spaces%21'
>>> reverse("admin:index", fragment="no encoding is done")
'/admin/#no encoding is done'
``reverse_leisciúil () `Link to this heading
Leagan de `reverse () `_ a mheastóireacht go leisciúil.
- reverse_lazy(viewname, urlconf=None, args=None, kwargs=None, current_app=None, *, query=None, fragment=None)Link to this definition
Tá sé úsáideach nuair is gá duit aisiompú URL a úsáid sula luchtaítear URLConf do thionscadail. Is iad roinnt cásanna coitianta ina bhfuil an fheidhm seo riachtanach ná:
URL aisghabháilte a sholáthar mar thréith ``url ``de radharc cineálach bunaithe ar aicme.
URL aisghabháilte a sholáthar do mhaisitheoir (mar shampla an argóint ``login_url ``don maisitheoir: func: django.contrib.auth.decorators.permission_required).
URL aisghabháilte a sholáthar mar luach réamhshocraithe do pharaiméadar i síniú feidhme.
``réiteach () ``Link to this heading
Is féidir an fheidhm ``resolution () ``a úsáid chun cosáin URL chuig na feidhmeanna amharc comhfhreagracha a réiteach. Tá an síniú seo a leanas aige:
- resolve(path, urlconf=None)Link to this definition
Is é path an cosán URL is mian leat a réiteach. Mar atá le: func: ~django.urls.reverse, ní gá duit a bheith buartha faoin bparaiméadar urlconf. Tugann an fheidhm ar ais a: class: ResolverMatch réad a ligeann duit rochtain a fháil ar mheiteashonraí éagsúla faoin URL réitithe.
Mura réiteann an URL, ardaíonn an fheidhm eisceacht a:exc: ~django.urls.resolver404 (fo-aicme de:class: ~django.http.http404).
- class ResolverMatchLink to this definition
- funcLink to this definition
An fheidhm amharc a úsáidfí chun freastal ar an URL
- argsLink to this definition
Na hargóintí a chuirfeadh ar aghaidh chuig an bhfeidhm amharc, mar a pháirsítear ón URL.
- kwargsLink to this definition
Gach argóint eochairfhocal a chuirfeadh chuig an bhfeidhm amharc, i.e.:attr: ~resolvermatch.captured_kwargs agus:attr: ~resolvermatch.extra_kwargs.
- captured_kwargsLink to this definition
Na hargóintí eochairfhocal gabháilte a chuirfeadh chuig an bhfeidhm amharc, mar a pháirsíodh ón URL.
- extra_kwargsLink to this definition
Na hargóintí eochairfhocal breise a chuirfeadh chuig an bhfeidhm amharc.
- url_nameLink to this definition
Ainm an phatrún URL a mheaitseálann leis an URL.
- routeLink to this definition
Bealach an phatrún meaitseála URL.
<id>Mar shampla, más é
path ('úsáideoirí/<id>/',...) ``an patrún meaitseála, beidh ```úsáideoirí//'i```beala.
- triedLink to this definition
Rinne an liosta de phatrúin URL triail as sular mheaitseáil an URL patrúin amháin nó patrúin atá ar fáil ídithe.
- app_nameLink to this definition
An spás ainmneacha feidhmchláir don phatrún URL a mheaitseálann leis an URL.
- app_namesLink to this definition
An liosta de chomhpháirteanna ainmneacha aonair sa spás ainmneacha iomlán feidhmchláir don phatrún URL a mheaitseálann leis an URL. Mar shampla, más é
`app_namefoo:bar', ansinapp_namesis['foo', 'bar'].
- namespaceLink to this definition
An spás ainmneacha sampla don phatrún URL a mheaitseálann leis an URL.
- namespacesLink to this definition
An liosta de chomhpháirteanna ainmneacha aonair sa spás ainmneacha iomlán don phatrún URL a mheaitseálann leis an URL. ie, más é an spás ainmneacha
foo:bar, ansin beidh spás ainmneacha['foo', 'bar'].
- view_nameLink to this definition
Ainm an radharc a mheaitseálann leis an URL, lena n-áirítear an spás ainmneacha má tá ceann ann.
A: aicme: Is féidir réad ResolverMatch a cheistiú ansin chun faisnéis a sholáthar faoin bpatrún URL a mheaitseálann le URL:
# Resolve a URL
match = resolve("/some/path/")
# Print the URL pattern that matches the URL
print(match.url_name)
A: aicme: Is féidir réad ResolverMatch a shannadh do thripla freisin:
func, args, kwargs = resolve("/some/path/")
Úsáid amháin a d'fhéadfadh a bheith de:func: ~django.urls.resolve ná tástáil a thabhairt an ardódh dearcadh earráid Http404 sula ndéanfadh dearcadh a atreorú chuige:
from urllib.parse import urlsplit
from django.urls import resolve
from django.http import Http404, HttpResponseRedirect
def myview(request):
next = request.META.get("HTTP_REFERER", None) or "/"
response = HttpResponseRedirect(next)
# modify the request and response as required, e.g. change locale
# and set corresponding locale cookie
view, args, kwargs = resolve(urlsplit(next).path)
kwargs["request"] = request
try:
view(*args, **kwargs)
except Http404:
return HttpResponseRedirect("/")
return response
``get_script_prefix () `Link to this heading
- get_script_prefix()Link to this definition
De ghnáth, ba chóir duit: func: ~django.urls.reverse a úsáid i gcónaí chun URLanna a shainiú laistigh de d'iarratas. Mar sin féin, má thógann d'fheidhmchlár cuid den ordlathas URL féin, b'fhéidir go mbeidh ort URLanna a ghiniúint ó am go chéile. Sa chás sin, ní mór duit a bheith in ann bunURL an tionscadail Django a aimsiú laistigh dá fhreastalaí gréasáin (de ghnáth, tugann: func: ~django.urls.reverse aire dó seo duit). Sa chás sin, is féidir leat glaoch ar ``get_script_prefix () ``, a thabharfaidh an chuid réimír script den URL ar ais do thionscadal Django. Má tá do thionscadal Django ag fréamh a fhreastalaí gréasáin, is é seo i gcónaí ``” /"`.