An aip athatreoraitheLink to this heading

Tagann Django le feidhmchlár athatreoruithe roghnach. Ligeann sé duit atreoruithe a stóráil i mbunachar sonraí agus láimhseálann sé an t-atreorú duit. Úsáideann sé an cód stádas freagartha HTTP ``301 Bogtha go Buan ``de réir réamhshocraithe.

SuiteáilLink to this heading

Chun an aip atreoraithe a shuiteáil, lean na céimeanna seo:

  1. <enabling-the-sites-framework>Déan cinnte go bhfuil an chreat django.contrib.sites: ref: `suiteáilte `.

  2. Cuir django.contrib.redirects' le do shuíomh: Setting: INSTALLED_APPS.

  3. Cuir ``django.contrib.redirects.middleware.redirectFallbackmiddleware'` le do shuíomh: MIDDLEWARE.

  4. <migrate>Rith an t-ordú: djadmin: `manage.py migration `.

Conas a oibríonn séLink to this heading

Cruthaíonn manage.py migrate tábla django_redirect i do bhunachar sonraí. Is tábla cuardaigh é seo le réimsí site_id, old_path` agus new_path.

Déanann an: Class: ~django.contrib.redirects.middleware.redirectFallbackMiddleWare an obair go léir. Gach uair a ardaíonn aon fheidhmchlár Django earráid 404, seiceálann an middleware seo an bunachar sonraí atreoraithe don URL iarrtha mar rogha dheiridh. Go sonrach, seiceálann sé athsheoladh leis an old_path` a thugtar le ID láithreáin a fhreagraíonn don socrú: setting: SITE_ID.

  • Má aimsíonn sé meaitseáil, agus mura bhfuil new_path folamh, atreoraíonn sé chuig new_path ag baint úsáide as atreorú 301 (“Bogtha go Buan”). Is féidir leat subclass:class: ~django.contrib.redirects.middleware.redirectFallbackMiddleware agus set:attr: ~django.contrib.redirects.middleware.redirectFallbackmiddleware.response_redirect_class to:class: django.http.httpresponseredirect chun 302 Temporada a úsáid Atreorú arily` ina ionad sin.

  • Má aimsíonn sé meaitseáil, agus má tá new_path folamh, seolann sé ceannteideal HTTP 410 (“Done”) agus freagra folamh (gan ábhar).

  • Mura bhfaigheann sé meaitseáil, leanann an t-iarratas á phróiseáil mar is gnách.

Ní ghníomhaítear an middleware ach ar feadh 404s - ní le haghaidh 500s nó freagraí ar aon chód stádais eile.

Tabhair faoi deara go bhfuil tábhacht ag ordú:setting: MIDDLEWARE. Go ginearálta, is féidir leat: class: ~django.contrib.redirects.middleware.redirectFallbackmiddleware a chur ag deireadh an liosta, toisc gur rogha deireanach é.

Le haghaidh tuilleadh eolais faoi middleware, léigh an:doc: middle</topics/http/middleware> ware docs.

Conas atreoruithe a chur leis, a athrú agus a scriosadhLink to this heading

Tríd an gcomhéadan riaracháinLink to this heading

Má tá an comhéadan riaracháin Django uathoibríoch curtha i ngníomh agat, ba chóir duit rannán “Atreoracha” a fheiceáil ar an leathanach innéacs riaracháin. Athsheoltóirí in eagar agus tú in eagar aon rud eile sa chóras in eagar.

Trí API PythonLink to this heading

class models.RedirectLink to this definition

Léirítear athatreoruithe le caighdeán:doc: samhail Django, a chónaíonn in:source: django/contrib/redirects/models.py. </topics/db/models> Is féidir leat rochtain a fháil ar rudaí atreoraithe trí:doc: Bunachar sonraí D</topics/db/queries> jango API. Mar shampla:

Python console
>>> from django.conf import settings
>>> from django.contrib.redirects.models import Redirect
>>> # Add a new redirect.
>>> redirect = Redirect.objects.create(
...     site_id=1,
...     old_path="/contact-us/",
...     new_path="/contact/",
... )
>>> # Change a redirect.
>>> redirect.new_path = "/contact-details/"
>>> redirect.save()
>>> redirect
<Redirect: /contact-us/ ---> /contact-details/>
>>> # Delete a redirect.
>>> Redirect.objects.filter(site_id=1, old_path="/contact-us/").delete()
(1, {'redirects.Redirect': 1})

Meán-earraíLink to this heading

class middleware.RedirectFallbackMiddlewareLink to this definition

Is féidir leat na ranganna: :class: ~django.http.httpResponse a úsáideann an middleware a athrú trí fho-aicme de:class: ~django.contrib.redirects.middleware.redirectfallbackmiddleware a chruthú agus response_gone_class` agus/nó response_redirect_class.

response_gone_classLink to this definition

An rang:class: ~django.http.httpResponse a úsáidtear nuair nach bhfaightear a:class: ~django.contrib.redirects.models.redirect don chosán iarrtha nó go bhfuil luach new_path bán aige.

Réamhshocraithe chuig: aicme: ~django.http.httpResponseGone.

response_redirect_classLink to this definition

An rang:class: ~django.http.httpResponse a láimhseálann an t-atreorú.

Réamhshocraithe chuig: aicme: ~django.http.httpResponsePermanentDirect.