---
title: "Tuairimí bonn"
version: 6.0
locale: ga
source: https://docs.djangoproject.com/ga/6.0/ref/class-based-views/base/
canonical: https://djangodocs.dev/ga/6.0/ref/class-based-views/base/
---
# Tuairimí bonn

Soláthraíonn na trí rang seo a leanas cuid mhaith den fheidhmiúlacht a theastaíonn chun radhairc Django a chruth Féadfaidh tú smaoineamh orthu mar thuairimí tuismitheoir\*, ar féidir leo féin a úsáid nó iad a oidhreacht uathu. Ní fhéadfaidh siad na cumais go léir a theastaíonn le haghaidh tionscadail a sholáthar, agus sa chás sin tá tuairimí Meascins agus Cineálacha bunaithe ar aicme ann.

Tá go leor de na tuairimí rang-bhunaithe ionsuite Django ag oidhreacht ó thuairimí rang-bhunaithe eile nó meascáin éagsúla. Toisc go bhfuil an slabhra oidhreachta seo an-tábhachtach, déantar na ranganna sinsear a dhoiciméadú faoin teideal ranna\*\*Sinsear (MRO) . Is acrainm é MRO d'Ordú Réitigh Modh.

## `Amharc`

#### `class django.views.generic.base.View`

An rang amharc bonn. Tá gach tuairim eile bunaithe ar rang-bhunaithe ag oidhreacht ón rang bonn seo. Ní dearcadh cineálach é go docht agus dá bhrí sin is féidir é a allmhairiú ó django.views.

**Cairt Sreabhadh Modh**

1. [`setup()`](#django.views.generic.base.View.setup)
2. [`dispatch()`](#django.views.generic.base.View.dispatch)
3. [`http_method_not_allowed()`](#django.views.generic.base.View.http_method_not_allowed)
4. [`options()`](#django.views.generic.base.View.options)

**Amharcanna sampla.py**:

```
from django.http import HttpResponse
from django.views import View

class MyView(View):
    def get(self, request, *args, **kwargs):
        return HttpResponse("Hello, World!")
```

**Sampla urls.py**:

```
from django.urls import path

from myapp.views import MyView

urlpatterns = [
    path("mine/", MyView.as_view(), name="my-view"),
]
```

**Aithníocht**

#### `http_method_names`

An liosta d'ainmneacha modh HTTP a nglacfaidh an dearcadh seo leis.

Réamhshocraithe:

```
["get", "post", "put", "patch", "delete", "head", "options", "trace"]
```

**Modhaí**

#### `classmethod as_view(**initkwargs)`

Tugann sé dearcadh inghlaonta ar ais a ghlacann iarratas agus a thugann freagra ar ais:

```
response = MyView.as_view()(request)
```

Tá tréithe `view_class` agus `view_initkwargs` sa radharc ar ais.

\<how-django-processes-a-request\>Nuair a thugtar an radharc le linn an timthriall iarrata/freagartha, sannann an modh:meth: setup an modh:class: ~django.http.http.httpRequest do thréith `request` an radharc, agus aon argóintí seasaimh agus/nó eochairfhoir:ref: gabhadh ón bpatrún URL go dtí na tréithe args\` agus kwargs\` faoi seach. Ansin: Meth: tugtar “seoladh”.

Má shainmhíníonn fo-aicme `View` láimhseálaithe modh asincrónacha (`async def`), marcálfaidh ```as_view () ``an glaoch ar ais mar fheidhm coroutine. Ardófar eisceacht ``ImproperlyConfigured``` má shainmhínítear láimhseálaithe asincrónach (`async def`) agus sioncrónach (def\`) araon ar rang amharc amháin.

#### `setup(request, *args, **kwargs)`

Déanann sé tionscnamh eochair radharc roimh: meth: sheoladh .

Assigns the [`HttpRequest`](/ga/6.0/ref/request-response/#django.http.HttpRequest) to the view's `request`
attribute, and any positional and/or keyword arguments
[captured from the URL pattern](/ga/6.0/topics/http/urls/#how-django-processes-a-request)
to the `args` and `kwargs` attributes, respectively.

Má tá an modh seo á shárú agat, ní mór duit glaoch ar super () .

#### `dispatch(request, *args, **kwargs)`

An chuid `tuairim` den tuairim -- an modh a ghlacann le argóint `iarrat` móide argóintí, agus a thugann freagra HTTP ar ais.

Déanfaidh an cur i bhfeidhm réamhshocraithe iniúchadh ar an modh HTTP agus déanfaidh sé iarracht é a tharmligean chuig modh a mheaitseálann leis an modh HTTP; tarmligfear `GET` chuig get () \`,\`\` POST \`\` post () \`, agus mar sin de.

De réir réamhshocraithe, tarmligfear iarratas `HEAD` chuig ```get () ``. Más gá duit iarratais ``HEAD``` a láimhseáil ar bhealach difriúil ná `GET`, is féidir leat an modh head () a shárú. Féach:ref: tacaíocht ear-http-methods mar shampla.

#### `http_method_not_allowed(request, *args, **kwargs)`

Má ghlaoadh ar an radharc le modh HTTP nach dtacaíonn sé, tugtar an modh seo ina ionad sin.

Tugann an cur i bhfeidhm réamhshocraithe `HttpResponseNotAllowed` le liosta de na modhanna ceadaithe i ngnáthtéacs.

#### `options(request, *args, **kwargs)`

Láimhseálann freagra ar iarratais ar an briathar HTTP OPTIONS. Tugann sé freagra ar ais leis an gceannteideal Allow ina bhfuil liosta d'ainmneacha modh HTTP ceadaithe an amharc.

Má tá na láimhseálaithe modhanna HTTP eile ar an rang asincrónach (`async def`) ansin filteofar an freagra i bhfeidhm coroutine le húsáid le ag fanacht \`.

## TeimpléadView \`\`

#### `class django.views.generic.base.TemplateView`

Déanann sé teimpléad ar leith, leis an gcomhthéacs ina bhfuil paraiméadair gabhadh san URL.

Sinsear (MRO) \*\*

Oidhreann an dearcadh seo modhanna agus tréithe ó na tuairimí seo a leanas:

- [`django.views.generic.base.TemplateResponseMixin`](/ga/6.0/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.base.ContextMixin`](/ga/6.0/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin)
- [`django.views.generic.base.View`](#django.views.generic.base.View)

**Cairt Sreabhadh Modh**

1. [`setup()`](#django.views.generic.base.View.setup)
2. [`dispatch()`](#django.views.generic.base.View.dispatch)
3. [`http_method_not_allowed()`](#django.views.generic.base.View.http_method_not_allowed)
4. [`get_context_data()`](/ga/6.0/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin.get_context_data)

**Amharcanna sampla.py**:

```
from django.views.generic.base import TemplateView

from articles.models import Article

class HomePageView(TemplateView):
    template_name = "home.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["latest_articles"] = Article.objects.all()[:5]
        return context
```

**Sampla urls.py**:

```
from django.urls import path

from myapp.views import HomePageView

urlpatterns = [
    path("", HomePageView.as_view(), name="home"),
]
```

**Comhthéacs**

- Daonra (trí:class: ~django.views.generic.base.contextMixin) leis na hargóintí eochairfhocal a ghabhadh ón bpatrún URL a d'fhreastail an dearcadh.
- Is féidir leat comhthéacs a chur leis freisin ag baint úsáide as an argóint eochairfhocal: attr: ~django.views.generic.base.contextMixin.extra\_context le haghaidh: meth: ~django.views.generic.base.view.as\_view.

## `Redirectview`

#### `class django.views.generic.base.RedirectView`

Atreoraíonn sé chuig URL ar leith.

D'fhéadfadh go mbeadh formáidiú teaghrán i stíl foclóra san URL a thugtar, a dhéanfar idirphóladh i gcoinne na bparaiméadair a ghabhadh san URL. Toisc go ndéantar idirpháirtíocht eochairfhocal i gcónaí\* (fiú mura ndéantar aon argóintí isteach), ní mór aon charachtair `"%"` sa URL a scríobh mar `"%%"` ionas go ndéanfaidh Python iad a thiontú go comhartha faoin gcéad amháin ar aschur.

Más é ```None ``an URL a thugtar, cuirfidh Django ``HttpResponseGone``` (410) ar ais.

Sinsear (MRO) \*\*

Oidhreann an dearcadh seo modhanna agus tréithe ón radharc seo a leanas:

- [`django.views.generic.base.View`](#django.views.generic.base.View)

**Cairt Sreabhadh Modh**

1. [`setup()`](#django.views.generic.base.View.setup)
2. [`dispatch()`](#django.views.generic.base.View.dispatch)
3. [`http_method_not_allowed()`](#django.views.generic.base.View.http_method_not_allowed)
4. [`get_redirect_url()`](#django.views.generic.base.RedirectView.get_redirect_url)

**Amharcanna sampla.py**:

```
from django.shortcuts import get_object_or_404
from django.views.generic.base import RedirectView

from articles.models import Article

class ArticleCounterRedirectView(RedirectView):
    permanent = False
    query_string = True
    pattern_name = "article-detail"

    def get_redirect_url(self, *args, **kwargs):
        article = get_object_or_404(Article, pk=kwargs["pk"])
        article.update_counter()
        return super().get_redirect_url(*args, **kwargs)
```

**Sampla urls.py**:

```
from django.urls import path
from django.views.generic.base import RedirectView

from article.views import ArticleCounterRedirectView, ArticleDetailView

urlpatterns = [
    path(
        "counter/<int:pk>/",
        ArticleCounterRedirectView.as_view(),
        name="article-counter",
    ),
    path("details/<int:pk>/", ArticleDetailView.as_view(), name="article-detail"),
    path(
        "go-to-django/",
        RedirectView.as_view(url="https://www.djangoproject.com/"),
        name="go-to-django",
    ),
]
```

**Aithníocht**

#### `url`

An URL le atreorú chuig, mar shreang. Nó None chun earráid HTTP 410 (Iomte) a ardú.

#### `pattern_name`

Ainm an phatrún URL le atreorú chuig. Déanfar aisiompú ag baint úsáide as na hargaí agus na kwargs céanna a chuirtear isteach don dearcadh seo.

#### `permanent`

Cibé an chóir go mbeadh an t-atreorú buan. Is é an t-aon difríocht anseo ná an cód stádais HTTP ar ais. Má tá `True`, ansin úsáidfidh an t-atreorú cód stádais 301. Má tá `False`, úsáidfidh an t-atreorú cód stádais 302. De réir réamhshocraithe, is é `buan` False\`.

#### `query_string`

Cibé an gcaithfidh tú dul ar feadh an sreangán fiosrúcháin GET chuig an suíomh nua. Má tá `True`, ansin cuirtear an teaghrán fiosrúcháin leis an URL. Má tá `False`, cuirtear an teaghrán fiosrúcháin a chaitheamh. De réir réamhshocraithe, is é `query_string` `False`.

**Modhaí**

#### `get_redirect_url(*args, **kwargs)`

Tógann sé an spriocURL le haghaidh athatreorú.

\<how-django-processes-a-request\>Is argóintí seasaimh agus/nó eochairfhocal iad na hargóintí args\` agus `kwargs`: ref: gabhadh ón bpatrún URL, faoi seach.

Úsáideann an cur i bhfeidhm réamhshocraithe:attr: url \`mar shreang tosaigh agus déanann sé leathnú paraiméadair ainmnithe \`\`%\` sa sreang sin ag baint úsáide as na grúpaí ainmnithe a ghabhadh san URL.

Má tá: attr: url” socraithe, iarrann \`\`get\_redirect\_url () \`\`an: attr: \`pattern\_name a aisiompú ag baint úsáide as an méid a gabhadh sa URL (úsáidtear grúpaí ainmnithe agus gan ainmnithe araon).

Má iarrann: attr: query\_string, cuirfidh sé an teaghrán fiosrúcháin leis an URL a ghintear freisin. Féadfaidh fo-aicmí aon iompar is mian leo a chur i bhfeidhm, fad is a thabharfaidh an modh sreang URL réidh le hathreorú.
