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:

Code
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ú:

Code
# 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:

Code
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:

Python console
>>> 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 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:

Python console
>>> 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_name foo:bar', ansin app_names is ['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:

Code
# 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:

Code
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:

Code
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í ``” /"`.