Suíomh riaracháin DjangoLink to this heading
Ceann de na codanna is cumhachtaí de Django ná an comhéadan riaracháin uathoibríoch. Léann sé meiteashonraí ó do mhúnlaí chun comhéadan tapa, samhail-lárnach a sholáthar inar féidir le húsáideoirí iontaofa ábhar ar do shuíomh a bhainistiú. Tá úsáid mholta an riaracháin teoranta d'uirlis bhainistíochta inmheánach eagraíochta. Níl sé beartaithe chun do cheann tosaigh iomlán a thógáil timpeall.
Tá go leor crúcaí ag an riarachán le saincheaptha, ach bí cúramach ort iarracht a dhéanamh na crúcaí sin a úsáid go heisiach Más gá duit comhéadan níos dírithe ar phróiseas a sholáthar a chuireann achoimir sonraí cur chun feidhme táblaí agus réimsí bunachar sonraí, is dócha go bhfuil sé in am do thuairimí féin a scríobh.
Sa doiciméad seo pléimid conas comhéadan riaracháin Django a ghníomhachtú, a úsáid agus a shaincheapadh.
ForbhreathnúLink to this heading
Tá an riarachán cumasaithe sa teimpléad tionscadail réamhshocraithe a úsáideann: djadmin: startproject.
Mura bhfuil an teimpléad tionscadail réamhshocraithe á úsáid agat, seo na riachtanais:
Cuir
django.contrib.admin'agus a spleáchais -:mod: django.contrib.auth, :mod: django.contrib.contenttypes, :mod: django.contrib.messages, agus:mod: django.contrib.sessions - le duit:setting: `INSTALLED_APP_ `socrú.<TEMPLATES-OPTIONS>Cumraigh a:class: ~django.template.backends.django.djangoTemplates cúltaca i d:setting: TEMPLATES socrú le
django.template.context_processors.request, django.contrib.auth.context_processors.auth`, agusdjango.contrimessb.ages.context_processors.messagessa rogha ``'context_processors' ``de:setting: `OPTIONS `.Má tá an socrú:setting: MIDDLEWARE saincheaptha agat, :class: django.contrib.sessions.middleware.sessionMiddleware, :class: django.contrib.auth.middleware.AuthenticationMiddleware, agus:class: django.contrib.messages.middleware.messageMiddleware.
<hooking-adminsite-to-urlconf>:ref: `Ceangail URLanna an riaracháin isteach i do URLConf `.
Tar éis duit na céimeanna seo a ghlacadh, beidh tú in ann an suíomh riaracháin a úsáid trí chuairt a thabhairt ar an URL a chuir tú isteach air (/admin/, de réir réamhshocraithe).
Más gá duit úsáideoir a chruthú le logáil isteach leis, bain úsáid as an ordú:djadmin: createsuperuser. De réir réamhshocraithe, éilíonn logáil isteach sa riarachán go bhfuil an tréith: attr: ~.user.is_staff socraithe go True ag an úsáideoir.
Faoi dheireadh, socraigh cé acu de na samhlacha d'iarratais ba chóir a bheith in-eagarthóireachta sa chomhéadan riaracháin. Maidir le gach ceann de na samhlacha sin, cláraigh iad leis an riarachán mar a thuairiscítear in:class: ModelAdmin.
Ábhair eileLink to this heading
``Modeladmin ``rudaíLink to this heading
- class ModelAdminLink to this definition
Is é an rang
ModelAdminléiriú samhail sa chomhéadan riaracháin. De ghnáth, stóráiltear iad seo i gcomhad darb ainmadmin.pyi d'iarratas. Breathnaímid ar shampla denModelAdmin:from django.contrib import admin from myapp.models import Author class AuthorAdmin(admin.ModelAdmin): pass admin.site.register(Author, AuthorAdmin)
An maisitheoir clárLink to this heading
- register(*models, site=django.contrib.admin.sites.site)Link to this definition
Tá maisitheoir ann freisin chun do ranganna ``ModelAdmin` a chlárú:
from django.contrib import admin from .models import Author @admin.register(Author) class AuthorAdmin(admin.ModelAdmin): passTugtar rang samhail amháin nó níos mó dó chun clárú leis an
ModelAdmin. Má tá saincheap:class: AdminSite á úsáid agat, pas é ag baint úsáide as an argóint eochairfhocal ``láithreach`:from django.contrib import admin from .models import Author, Editor, Reader from myproject.admin_site import custom_admin_site @admin.register(Author, Reader, Editor, site=custom_admin_site) class PersonAdmin(admin.ModelAdmin): passNí féidir leat an maisitheoir seo a úsáid má chaithfidh tú tagairt a dhéanamh do rang riaracháin samhail ina mhodh ``__init__ () , m.sh. `super (PersonAdmin, self). __init__ (*args, **kwargs) `. Is féidir leat ``super () a úsáid. __init__ (*args, **kwargs) ``.
Faighneadh comhaid riaracháinLink to this heading
Nuair a chuireann tú django.contrib.admin i do shuíomh: INSTALLED_APPS, lorgaíonn Django modúl ``admin ``go huathoibríoch i ngach feidhmchlár agus déanann Django é a allmhairiú.
- class apps.AdminConfigLink to this definition
This is the default
AppConfigclass for the admin. It callsautodiscover()when Django starts.
- class apps.SimpleAdminConfigLink to this definition
This class works like
AdminConfig, except it doesn't callautodiscover().- default_siteLink to this definition
Conair allmhairithe poncanach chuig rang an láithreáin riaracháin réamhshocraithe nó chuig glaoch a thugann sampla láithreáin ar ais. Réamhshocraithe go ``django.contrib.admin.sites.adminsite'. Féach: ref: `overriding-default-admin-site le húsáid.
- autodiscover()Link to this definition
Déanann an fheidhm seo iarracht modúl ``admin ``a allmhairiú i ngach feidhmchlár suiteáilte. Táthar ag súil go gclárfaidh modúil den sórt sin samhlacha leis an riarach
De ghnáth ní bheidh ort an fheidhm seo a ghlaoch go díreach mar: class: ~django.contrib.admin.apps.adminConfig glaonn sé nuair a thosaíonn Django.
Má tá tú ag úsáid saincheaptha AdminSite, is coitianta na fo-aicmí ModelAdmin go léir a iompórtáil isteach i do chód agus iad a chlárú chuig an saincheaptha AdminSite. Sa chás sin, d'fhonn uathoibríoch a dhíchumasú, ba chóir duit ``django.contrib.admin.apps.simpleAdminConfig'` a chur in ionad ``django.contrib.admin' i do shuíomh: INSTALLED_APPS.
Roghanna ModelAdminLink to this heading
Tá an ModelAdmin an-solúbtha. Tá roinnt roghanna aige chun déileáil leis an gcomhéadan a shaincheapadh. Sainmhínítear gach rogha ar an bhfo-aicme ModelAdmin:
from django.contrib import admin
class AuthorAdmin(admin.ModelAdmin):
date_hierarchy = "pub_date"
- ModelAdmin.actionsLink to this definition
Liosta de na gníomhartha atá le cur ar fáil ar an leathanach liosta athraithe. Féach: doc: /ref/contrib/admin/actions le haghaidh sonraí.
- ModelAdmin.actions_on_topLink to this definition
- ModelAdmin.actions_on_bottomLink to this definition
Rialuithe áit a bhfuil an barra gníomhartha le feiceáil ar an leathanach. De réir réamhshocraithe, taispeánann an liosta athraithe riaracháin gníomhartha ag barr an leathanaigh (actions_on_top = True; actions_on_bottom = False`).
- ModelAdmin.actions_selection_counterLink to this definition
Rialaíonn sé an bhfuil cuntar roghnúcháin ar taispeáint in aice leis an anuas gníomhaíochta. De réir réamhshocraithe, taispeánfaidh an liosta athraithe riaracháin é (
actions_selection_counter = True).
- ModelAdmin.date_hierarchyLink to this definition
Socraigh
date_hierarchyar ainmDateFieldnóDateTimeFieldi do mhúnla, agus beidh nascleanúint drilldown bunaithe ar dáta-bhunaithe ag an réimse sin san leathanach liosta athraithe.Sampla:
date_hierarchy = "pub_date"Is féidir leat réimse a shonrú freisin ar mhúnla gaolmhar ag baint úsáide as an lorg
__, mar shampla:date_hierarchy = "author__pub_date"Déanfaidh sé seo é féin a dhaonrú go cliste bunaithe ar na sonraí atá ar fáil, m.sh. má tá na dátaí go léir i mí amháin, taispeánfaidh sé an druileáil síos ar leibhéal lae amháin.
- ModelAdmin.empty_value_displayLink to this definition
Sáraíonn an tréith seo an luach taispeána réamhshocraithe do réimsí an taifead atá folamh (
None ``, teaghrán folamh, srl.). Is é an luach réamhshocraithe ``-(sraigh). Mar shampla:from django.contrib import admin class AuthorAdmin(admin.ModelAdmin): empty_value_display = "-empty-"Is féidir leat
empty_value_displaya shárú freisin do gach leathanach riaracháin le:attr: adminsite.empty_value_display, nó le haghaidh réimsí ar leith mar seo:from django.contrib import admin class AuthorAdmin(admin.ModelAdmin): list_display = ["name", "title", "view_birth_date"] @admin.display(empty_value="???") def view_birth_date(self, obj): return obj.birth_date
- ModelAdmin.excludeLink to this definition
Ba chóir go mbeadh an tréith seo, má thugtar, ina liosta d'ainmneacha réimse le eisiamh ón bhfoirm.
Mar shampla, déanaimis machnamh ar an tsamhail seo a leanas:
from django.db import models class Author(models.Model): name = models.CharField(max_length=100) title = models.CharField(max_length=3) birth_date = models.DateField(blank=True, null=True)Más mian leat foirm don tsamhail
Údarnach n-áirítear ach na réimsíainmagusteideal ``, sonrófaí ``réimsíréimsínó ``eisiammar seo:from django.contrib import admin class AuthorAdmin(admin.ModelAdmin): fields = ["name", "title"] class AuthorAdmin(admin.ModelAdmin): exclude = ["birth_date"]Ós rud é nach bhfuil ach trí réimse ag an tsamhail Údair,
ainm ``, `teideal, agus dáta_bhreith`, beidh na réimsí céanna go díreach sna foirmeacha a eascraíonn as na dearbhuithe thuas.
- ModelAdmin.fieldsLink to this definition
Úsáid an rogha ``réimsí ``chun athruithe leagan amach simplí a dhéanamh sna foirmeacha ar na leathanaigh “cuir” agus “athraigh” amhail fo-thacar de réimsí atá ar fáil a thaispeáint, a n-ord a mhodhnú, nó iad a ghrúpáil i sraitheanna. Mar shampla, d'fhéadfá leagan níos simplí den fhoirm riaracháin a shainiú don tsamhail:class: django.contrib.flatpages.models.flatpage mar seo a leanas:
class FlatPageAdmin(admin.ModelAdmin): fields = ["url", "title", "content"]Sa sampla thuas, ní thaispeánfar ach na réimsí
url ``, `teidealagusábh`, sa fhoirm, go seicheamhach. Is féidir luachanna a shainmhínítear in:attr: `ModelAdmin.ReadOnly_Fields` a bheith i `fieldsle taispeáint mar léite amháin.Le haghaidh riachtanais leagan amach níos casta, féach an rogha: attr: ~ModelAdmin.FieldSets.
Glacann an rogha
fieldsleis na cineálacha céanna luachanna amha:attr: ~ModelAdmin.list_display, ach amháin nach nglactar le glaonna agus__cuardaigh do réimsí gaolmhara. Ní úsáidfear ainmneacha modhanna riaracháin samhail agus samhail ach amháin má tá siad liostaithe in:attr: ~ModelAdmin.ReadOnly_Fields.Chun réimsí iolracha a thaispeáint ar an líne chéanna, fillte na réimsí sin ina dtuple féin. Sa sampla seo, taispeánfar na réimsí
urlagusteideal ``ar an líne chéanna agus taispeánfar an réimse ``contentfaoina bhun ar a líne féin:class FlatPageAdmin(admin.ModelAdmin): fields = [("url", "title"), "content"]If neither
fieldsnorfieldsetsoptions are present, Django will default to displaying each field that isn't anAutoFieldand haseditable=True, in a single fieldset, in the same order as the fields are defined in the model, followed by any fields defined inreadonly_fields.
- ModelAdmin.fieldsetsLink to this definition
Socraigh
fieldsetschun leagan amach na leathanaigh riaracháin “cuir” agus “athraigh” a rialú.<fieldset>Is liosta de 2-tuples é fieldsets, ina léiríonn gach 2-tuple ```` ar an leathanach foirm riaracháin. (Is “cuid<fieldset>” den fhoirm é a ```.)
Tá na 2-tuples i bhformáid
(ainm, roghanna réimse), ina bhfuilainm ``teaghrán a léiríonn teideal an tacar réimse agus is foclóir faisnéise faoin tacar réimse é `field_options, lena n-áirítear liosta réimsí atá le taispeáint ann.Sampla iomlán, tógtha ón múnla:class: django.contrib.flatpages.models.flatpage:
from django.contrib import admin class FlatPageAdmin(admin.ModelAdmin): fieldsets = [ ( None, { "fields": ["url", "title", "content", "sites"], }, ), ( "Advanced options", { "classes": ["collapse"], "fields": ["registration_required", "template_name"], }, ), ]Mar thoradh air seo tá leathanach riaracháin a bhfuil cuma air:
Mura bhfuil roghanna
fieldsetsnor:attr: ~ModelAdmin.fields i láthair, réamhshocróidh Django gach réimse nachautofielda thaispeáint agus a bhfuilEditable=True, i tacar réimse amháin, san ord céanna agus atá na réimsí sainmhínithe sa tsamhail.Is féidir leis na heochracha seo a leanas a bheith ag an bhfoclóir field_options`:
- ``réimsí ``
Liosta nó tiúpla d'ainmneacha réimse le taispeáint sa tacar réimse seo. Tá an eochair seo ag teastáil.
Sampla:
{ "fields": ["first_name", "last_name", "address", "city", "state"], }Mar is amhlaidh leis an rogha: attr: ~ModelAdmin.Fields, chun réimsí iolracha a thaispeáint ar an líne chéanna, timpail na réimsí sin ina dtuple féin. Sa sampla seo, taispeánfar na réimsí
first_nameaguslast_namear an líne chéanna:{ "fields": [("first_name", "last_name"), "address", "city", "state"], }Is féidir luachanna a shainmhínítear in:attr: ~ModelAdmin.ReadOnly_Fields a bheith i fields` le taispeáint mar léite amháin.
Má chuireann tú ainm inghlaonta le fields`, tá feidhm ag an riail chéanna leis an roghna:attr: ~ModelAdmin.Fields: ní mór an glaoch a liostáil in:attr: ~ModelAdmin.Readonly_Fields.
rangaLiosta nó tuple ina bhfuil ranganna breise CSS le cur i bhfeidhm ar an tacar réimse. Féadfaidh sé seo aon rang CSS saincheaptha a shainmhínítear sa tionscadal a áireamh, chomh maith le haon cheann de na ranganna CSS a sholáthraíonn Django. Laistigh de bhileog stíl CSS an láithreáin riaracháin réamhshocraithe, sainmhínítear dhá rang an-úsáideach:
tiompaguswieh.Sampla:
{ "classes": ["wide", "collapse"], }Tabharfar spás cothrománach breise sa chomhéadan riaracháin do thacair réimse leis an stíl ``leathan ``. Titeofar tacair réimsí le hainm agus an stíl ``clise' i dtosach, ag baint úsáide as giuirléid leathnaithe le toggle chun a n-infheictheacht a athrú.
`TuairiscSraith téacs breise roghnach le taispeáint ag barr gach tacar réimse, faoi cheannteideal an tacar réimse.
Tabhair faoi deara go bhfuil an luach seo* éalaithe ag HTML nuair a thaispeántar é sa chomhéadan riaracháin. Ligeann sé seo duit HTML a áireamh más mian leat. Nó is féidir leat gnáthtéacs agus:func: django.utils.html.escape a úsáid chun éalú aon charachtair speisialta HTML.
- ModelAdmin.filter_horizontalLink to this definition
<select multiple>De réir réamhshocraithe, taispeántar a:class: ~django.db.models.manyTomanyField ar an suíomh riaracháin le ````. Mar sin féin, is féidir go mbeadh sé deacair boscaí ilroghnaithe a úsáid agus go leor míreanna á roghnú. Ag cur a:class: ~django.db.models.manyToManyField leis an liosta seo úsáidfear comhéadan “scagaire” JavaScript neamh-neamhbhraith ina ionad sin a cheadaíonn cuardach laistigh de na roghanna. Tá na roghanna neamhroghnaithe agus roghnaithe le feiceáil i dhá bhosca taobh le taobh. Féach: attr: ~ModelAdmin.filter_vertical chun comhéadan ingearach a úsáid.
- ModelAdmin.filter_verticalLink to this definition
Mar an gcéanna len:attr: ~ModelAdmin.filter_Horizontal, ach úsáideann sé taispeáint ingearach den chomhéadan scagaire leis an mbosca roghanna neamhroghnaithe atá le feiceáil os cionn an bhosca na roghanna roghnaithe.
- ModelAdmin.formLink to this definition
De réir réamhshocraithe cruthaítear
ModelFormgo dinimiciúil do do mhúnla. Úsáidtear é chun an fhoirm a chuirtear i láthair ar na leathanaigh cuirte/athraigh a chruthú. Is féidir leat do ModelForm ``féin a sholáthar go héasca chun aon iompar foirme réamhshocraithe ar na leathanaigh cuirte/athraithe a shárú. De rogha air sin, is féidir leat an fhoirm réamhshocraithe a shaincheapadh seachas ceann iomlán nua a shonrú tríd an modh: meth: `ModelAdmin.get_form a úsáid.Mar shampla féach an rannáit:ref: admin-custom-validation.
- ModelAdmin.formfield_overridesLink to this definition
Soláthraíonn sé seo bealach tapa agus salach chun cuid de na roghanna: class: ~django.forms.field a shárú le húsáid sa riarachán. Is foclóir é formfield_overrides` ag mapáil rang réimse go dtí argóintí le dul chuig an réimse ag am tógála.
Ós rud é go bhfuil sé sin beagán teibí, féachaimis ar shampla nithiontach. Is é an úsáid is coitianta de
formfield_overridesgiuirléid saincheaptha a chur le haghaidh cineál áirithe réimse. <textarea>Mar sin, samhlaigh go bhfuil RichTextEditorWidget` scríofa againn ar mhaith linn a úsáid le haghaidh réimsí móra téacs in ionad an réamhshocraithe ```. Seo mar a dhéanfaimis é sin:from django.contrib import admin from django.db import models # Import our custom widget and our model from where they're defined from myapp.models import MyModel from myapp.widgets import RichTextEditorWidget class MyModelAdmin(admin.ModelAdmin): formfield_overrides = { models.TextField: {"widget": RichTextEditorWidget}, }Tabhair faoi deara gurb é an eochair sa fhoclóir an rang réimse iarbhír, * ní* teaghrán. Is foclóir eile é an luach; cuirfear na hargóintí seo ar aghaidh chuig modh ``__init__ () ``réimse na foirme. Féach: doc: /ref/forms/api le haghaidh sonraí.
- ModelAdmin.inlinesLink to this definition
Féach: aicme: rudaí inlineModelAdmin thíos chomh maith leis: meth: ModelAdmin.get_formSets_with_inlines.
- ModelAdmin.list_displayLink to this definition
Socraigh
list_displaychun na réimsí a thaispeántar ar leathanach liosta athraithe an riaracháin a rialú.Sampla:
list_display = ["first_name", "last_name"]Mura socraíonn tú
list_display, taispeánfaidh an suíomh riaracháin colún amháin a thaispeánann léiriú ``__str__ () `de gach rud.Tá cúig chineál luachanna ann is féidir a úsáid i
list_display. Féadfaidh gach duine ach an ceann is simplí an maisitheoir: func: ~django.contrib.admin.display a úsáid, a úsáidtear chun an chaoi a gcuirtear an réimse i láthair a shaincheapadh:Ainm réimse samhail. Mar shampla:
class PersonAdmin(admin.ModelAdmin): list_display = ["first_name", "last_name"]Ainm réimse gaolmhar, ag baint úsáide as an nótaí
__. Mar shampla:class PersonAdmin(admin.ModelAdmin): list_display = ["city__name"]Inghlaonta a ghlacann le argóint amháin, an tsamhail samhail. Mar shampla:
@admin.display(description="Name") def upper_case_name(obj): return f"{obj.first_name} {obj.last_name}".upper() class PersonAdmin(admin.ModelAdmin): list_display = [upper_case_name]Sreang a léiríonn modh
ModelAdmina ghlacann le argóint amháin, an tsamhail samhail. Mar shampla:class PersonAdmin(admin.ModelAdmin): list_display = ["upper_case_name"] @admin.display(description="Name") def upper_case_name(self, obj): return f"{obj.first_name} {obj.last_name}".upper()Sreang a léiríonn tréith nó modh samhail (gan aon argóintí riachtanacha). Mar shampla:
from django.contrib import admin from django.db import models class Person(models.Model): name = models.CharField(max_length=50) birthday = models.DateField() @admin.display(description="Birth decade") def decade_born_in(self): decade = self.birthday.year // 10 * 10 return f"{decade}’s" class PersonAdmin(admin.ModelAdmin): list_display = ["name", "decade_born_in"]
Cúpla cás speisialta le tabhairt faoi deara faoi
list_display:Más
ForeignKeyan réimse, taispeánfaidh Django ``__str__ () ``den réad gaolmhar.Ní thacaítear le réimsí
ManyTomanyField`, toisc go mbeadh sé sin i gceist leis sin ráiteas SQL ar leithligh a fhorghníomhú do gach sraith sa tábla. Más mian leat é seo a dhéanamh mar sin féin, tabhair modh saincheaptha do do mhúnla, agus cuir ainm an mhodha sin le `list_display`. (Féach thíos le haghaidh tuilleadh faoi mhodhanna saincheaptha i `list_display.)Más
Booleanfieldé an réimse, taispeánfaidh Django deilbhín deas “tá”, “níl”, nó “anaithnid” in ionadTrue, False`, nóNone.Más modh den mhúnla é an teaghrán a thugtar,
ModelAdminnó inghlaoithe, éalóidh Django an t-aschur HTML de réir réamhshocraithe. Chun ionchur úsáideora a éalú agus do chlibeanna gan éalú féin a cheadú, bain úsáid as: func: ~django.utils.html.format_html.Seo samhail iomlán sampla:
from django.contrib import admin from django.db import models from django.utils.html import format_html class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) color_code = models.CharField(max_length=6) @admin.display def colored_name(self): return format_html( '<span style="color: #{};">{} {}</span>', self.color_code, self.first_name, self.last_name, ) class PersonAdmin(admin.ModelAdmin): list_display = ["first_name", "last_name", "colored_name"]Mar a léirigh roinnt samplaí cheana féin, agus modh inghlaonta, modh samhail, nó modh ModelAdmin á úsáid agat, is féidir leat teideal an cholúin a shaincheapadh tríd an glaoch a fhilleadh leis an maisitheoir: :func: ~django.contrib.admin.display agus an argóint Description a rith.
Más é luach réimse
None, teaghrán folamh, nó athraitheach gan eilimintí, taispeánfaidh Django-(doic). Is féidir leat é seo a shárú le:attr: adminsite.empty_value_display:from django.contrib import admin admin.site.empty_value_display = "(None)"Is féidir leat úsáid freisin: attr: ModelAdmin.empty_value_display:
class PersonAdmin(admin.ModelAdmin): empty_value_display = "unknown"Nó ar leibhéal réimse:
class PersonAdmin(admin.ModelAdmin): list_display = ["name", "birth_date_view"] @admin.display(empty_value="unknown") def birth_date_view(self, obj): return obj.birth_dateMás modh den tsamhail é an teaghrán a thugtar,
ModelAdminnó glaoch a thugann ar ais True`, False`, nóNone, taispeánfaidh Django deilbhín deas “yes”, “níl”, nó “anaithnid” má fhilleann tú an modh leis an: func: ~django.contrib.admin. argóint olean`` leis an luach socraithe goTrue:from django.contrib import admin from django.db import models class Person(models.Model): first_name = models.CharField(max_length=50) birthday = models.DateField() @admin.display(boolean=True) def born_in_fifties(self): return 1950 <= self.birthday.year < 1960 class PersonAdmin(admin.ModelAdmin): list_display = ["name", "born_in_fifties"]Tá an modh
__str__ () ``chomh bailí i ``list_displayagus aon mhodh samhail eile, mar sin tá sé go foirfe ceart go leor é seo a dhéanamh:list_display = ["__str__", "some_other_field"]De ghnáth, ní féidir eilimintí de list_display` nach réimsí bunachar sonraí iarbhír iad a úsáid i sórtáil (toisc go ndéanann Django an sórtáil go léir ag leibhéal an bhunachar sonraí).
Mar sin féin, má léiríonn eilimint de list_display` réimse áirithe bunachar sonraí, is féidir leat an fíric seo a chur in iúl tríd an maisitheoir: func: ~django.contrib.admin.display a úsáid ar an modh, ag rith an argóint ``ordú ``:
from django.contrib import admin from django.db import models from django.utils.html import format_html class Person(models.Model): first_name = models.CharField(max_length=50) color_code = models.CharField(max_length=6) @admin.display(ordering="first_name") def colored_first_name(self): return format_html( '<span style="color: #{};">{}</span>', self.color_code, self.first_name, ) class PersonAdmin(admin.ModelAdmin): list_display = ["first_name", "colored_first_name"]Inseoidh an méid thuas do Django ordú ag an réimse
first_nameagus tú ag iarraidh a shórtáil de réir colorred_first_name` sa riarachán.Chun ordú íslitheach a chur in iúl leis an argóint ``ordú ``is féidir leat réimír bhreitheach a úsáid ar ainm an réimse. Ag baint úsáide as an sampla thuas, bheadh an chuma seo mar seo:
@admin.display(ordering="-first_name") def colored_first_name(self): ...Tacaíonn an argóint ``ordú ``le cuardaigh fiosrúcháin chun sórtáil de réir luachanna ar mhúnlaí gaolmhara. Cuimsíonn an sampla seo colún “céadainm an údair” i dtaispeáint an liosta agus ceadaíonn sé é a shórtáil de réir chéad ainm:
class Blog(models.Model): title = models.CharField(max_length=255) author = models.ForeignKey(Person, on_delete=models.CASCADE) class BlogAdmin(admin.ModelAdmin): list_display = ["title", "author", "author_first_name"] @admin.display(ordering="author__first_name") def author_first_name(self, obj): return obj.author.first_nameQuery expressions may be used with the
orderingargument:from django.db.models import Value from django.db.models.functions import Concat class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) @admin.display(ordering=Concat("first_name", Value(" "), "last_name")) def full_name(self): return self.first_name + " " + self.last_nameIs féidir le heilimintí de list_display` a bheith ina airíonna freisin:
class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) @property @admin.display( ordering="last_name", description="Full name of the person", boolean=False, ) def full_name(self): return self.first_name + " " + self.last_name class PersonAdmin(admin.ModelAdmin): list_display = ["full_name"]Tabhair faoi deara go gcaithfidh
@propertya bheith os cionn@display. Má tá an seanbhealach á úsáid agat - ag socrú na tréithe a bhaineann le taispeáint go díreach seachas an maisitheoir: func: ~django.contrib.admin.display a úsáid -- bí ar an eolas go gcaithfear an fheidhmproperty () ``agus **not** an maisitheoir@property ``a úsáid:def my_property(self): return self.first_name + " " + self.last_name my_property.short_description = "Full name of the person" my_property.admin_order_field = "last_name" my_property.boolean = False full_name = property(my_property)<field_name><th>Beidh na hainmneacha réimse i list_display` le feiceáil mar ranganna CSS san aschur HTML, i bhfoirm
column- ``ar gach eilimint``. Is féidir é seo a úsáid chun leithead colún a shocrú i gcomhad CSS mar shampla.Déanfaidh Django iarracht gach eilimint de list_display` a léirmhíniú san ord seo:
Réimse den tsamhail nó ó réimse gaolmhar.
Is féidir glaoch.
Sreang a léiríonn tréith
ModelAdmin.Sreang a léiríonn tréith samhail.
Mar shampla má tá
first_nameagat mar réimse samhail agus mar thréithModelAdmin, úsáidfear an réimse samhail.
- ModelAdmin.list_display_linksLink to this definition
Úsáid
list_display_linkschun rialú a dhéanamh ar chóir agus cé na réimsí in:attr: list_display a nascadh leis an leathanach “athraigh” le haghaidh réad.De réir réamhshocraithe, nascfaidh an leathanach liosta athraithe an chéad cholún - an chéad réimse a shonraítear in
list_display- leis an leathanach athraithe do gach mír. Ach ligeannlist_display_linksduit é seo a athrú:Socraigh é go ``None ```chun aon naisc a fháil ar chor ar bith.
Socraigh é go liosta nó tuipéar réimsí (san fhormáid chéanna le list_display`) ar mhaith leat a gcolúin a thiontú go naisc.
Is féidir leat réimsí amháin nó go leor a shonrú. Chomh fada agus a bhíonn na réimsí le feiceáil in list_display`, ní cúram le Django cé mhéad (nó cé chomh beag) réimse atá nasctha. Is é an t-aon riachtanas ná más mian leat
list_display_linksa úsáid ar an mbealach seo, ní mór duitlist_displaya shainiú.
Sa sampla seo, beidh na réimsí
first_nameaguslast_namenasctha ar an leathanach liosta athraithe:class PersonAdmin(admin.ModelAdmin): list_display = ["first_name", "last_name", "birthday"] list_display_links = ["first_name", "last_name"]Sa sampla seo, ní bheidh aon naisc ag an eangach leathanaigh liosta athraithe:
class AuditEntryAdmin(admin.ModelAdmin): list_display = ["timestamp", "message"] list_display_links = None
- ModelAdmin.list_editableLink to this definition
Socraigh
list_editablego liosta d'ainmneacha réimse ar an tsamhail a cheadóidh eagarthóireacht ar leathanach an liosta athraithe. Is é sin, taispeánfar réimsí atá liostaithe i list_editable` mar ghuirléidí foirme ar leathanach an liosta athraithe, rud a ligeann d'úsáideoirí sraitheanna iolracha a chur in eagar agus a shábháil ag an am céanna.
- ModelAdmin.list_filterLink to this definition
Socraigh
list_filterchun scagairí a ghníomhachtú i mbarra taobh na láimhe deise ar leathanach liosta athraithe an riaracháin.Ag an rud is simplí glacann
list_filterliosta nó tuple d'ainmneacha réimse chun scagadh a ghníomhachtú, ach roinnt roghanna níos airde mar atá ar fáil. Féach: ref: modeladmin-list-filters le haghaidh na sonraí.
- ModelAdmin.list_max_show_allLink to this definition
Socraigh
list_max_show_allchun a rialú cé mhéad earra is féidir le feiceáil ar leathanach liosta athraithe riaracháin “Taispeáin go léir”. Taispeánfaidh an riarachán nasc “Taispeáin go léir” ar an liosta athraithe ach amháin má tá líon iomlán na dtorthaí níos lú ná nó cothrom leis an socrú seo. De réir réamhshocraithe, tá sé seo socraithe go200.
- ModelAdmin.list_per_pageLink to this definition
Socraigh
list_per_pagechun a rialú cé mhéad míreanna atá le feiceáil ar gach leathanach liosta athraithe riaracháin leathanaigh. De réir réamhshocraithe, tá sé seo socraithe go100.
Socraigh
list_select_relatedchun a rá le Django go n-úsáid:meth: ~django.db.models.query.queryset.select_related agus an liosta rudaí ar an leathanach liosta athraithe riaracháin a aisghabháil. Féadann sé seo dornán ceisteanna bunachar sonraí a shábháil duit.Ba chóir go mbeadh an luach boolean, liosta nó tuple. Is é “False” réamhshocraithe.
Nuair a bhíonn luach
True, glaofar arselect_related () ``i gcónaí. Nuair a shocraítear luach go `False, féachfaidh Django ar list_display` agus glaoidh sé arselect_related () ``má tá aon ``ForeignKeyi láthair.Má theastaíonn níos mó rialú mionghráin uait, bain úsáid as tuple (nó liosta) mar luach do list_select_related. Cuirfidh tuple folamh cosc ar Django glaoch ar
select_relatedar chor ar bith. Cuirfear aon tuple eile ar aghaidh go díreach chuigselect_relatedmar pharaiméadair. Mar shampla:class ArticleAdmin(admin.ModelAdmin): list_select_related = ["author", "category"]glaoifidh sé ar ``select_related ('author', 'category') ``.
Más gá duit luach dinimiciúil a shonrú bunaithe ar an iarratas, is féidir leat modh a: meth: ~ModelAdmin.get_List_Select_Related a chur i bhfeidhm.
- ModelAdmin.orderingLink to this definition
Socraigh ``ordú ``chun a shonrú conas ba chóir liostaí rudaí a ordú i dtuairimí riaracháin Django. Ba chóir go mbeadh sé seo ina liosta nó tuple san fhormáid chéanna le paraiméadar samhail's:attr: ~django.db.Models.Options.Ordering.
Mura gcuirtear é seo ar fáil, úsáidfidh riarachán Django ordú réamhshocraithe an tsamhail.
Más gá duit ordú dinimiciúil a shonrú (mar shampla ag brath ar úsáideoir nó ar theanga) is féidir leat modh a: meth: ~ModelAdmin.get_Ordering a chur i bhfeidhm.
- ModelAdmin.paginatorLink to this definition
An rang paginator le húsáid le haghaidh leathanaigh. De réir réamhshocraithe, úsáidtear: class: django.core.paginator.paginator. Mura bhfuil an comhéadan tógála céanna ag an rang paginator saincheaptha las:class: django.core.paginator.paginator, beidh ort cur i bhfeidhm a sholáthar freis:meth: ModelAdmin.get_Paginator.
- ModelAdmin.prepopulated_fieldsLink to this definition
Socraigh
prepopulated_fieldschuig foclóir ainmneacha réimse a mhapáil chuig na réimsí ba chóir dó a réamhphoiliú ó:class ArticleAdmin(admin.ModelAdmin): prepopulated_fields = {"slug": ["title"]}Nuair a bheidh sé socraithe, úsáidfidh na réimsí ar leith beagán JavaScript chun líonadh ó na réimsí a shanntar. Is é an príomhúsáid don fheidhmiúlacht seo an luach do réimsí ``Slugfield` a ghiniúint go huathoibríoch ó réimse amháin nó níos mó eile. Déantar an luach a ghintear a tháirgeadh trí luachanna na réimsí foinse a chomhcheangal, agus ansin tríd an toradh sin a athrú ina slug bailí (m.sh. sraitheanna a chur in ionad spásanna agus litreacha ASCII níos ísle).
Ní dhéanann JavaScript réamhphoilte a mhodhnú tar éis luach a shábháil. De ghnáth ní theastaíonn sé go n-athraíonn slóga (rud a d'fhágfadh go n-athródh URL réada má úsáidtear an slug ann).
Ní ghlacann
prepopulated_fieldsle réimsíDateTimeField, ForeignKey`, OneTooneField`, agus`ManyTomanyField.
- ModelAdmin.preserve_filtersLink to this definition
De réir réamhshocraithe, caomhnaítear scagairí feidhme ar amharc an liosta tar éis réad a chruthú, a chur in eagar nó a scriosadh Is féidir leat scagairí a ghlanadh tríd an tréith seo a shocrú go
False.
- ModelAdmin.show_facetsLink to this definition
Rialaíonn cibé an dtaispeántar comhaireamh gnéithe do scagairí sa liosta athraithe riaracháin. Réamhshocraithe chuig: attr: .showFacets.allow.
Nuair a thaispeántar, nuashonraíonn comhaireamh gnéithe i gcomhréir leis na scagairí
- class ShowFacetsLink to this definition
Enum na luachanna ceadaithe le haghaidh: attr: .modeladmin.show_facets.
- ALWAYSLink to this definition
Taispeáin líon gnéithe i gcónaí.
- ALLOWLink to this definition
Taispeáin comhaireamh gnéithe nuair a chuirtear an paraiméadar teaghrán fiosrúcháin
_facetsar fáil.
- NEVERLink to this definition
Ná taispeáin comhaireamh gnéithe riamh.
Socraigh
show_facetsgo dtí an luach inmhianaithe: class: .showFacets. Mar shampla, chun comhaireamh gnéithe a thaispeáint i gcónaí gan gá duit an paraiméadar ceisteanna a sholáthar:from django.contrib import admin class MyModelAdmin(admin.ModelAdmin): ... # Have facets always shown for this model admin. show_facets = admin.ShowFacets.ALWAYS
- ModelAdmin.radio_fieldsLink to this definition
De réir réamhshocraithe, úsáideann riarachán Django comhéadan bosca roghnaithe (<select>) do réimsí atá
ForeignKeynó a bhfuilroghanna ``socraithe acu. Má tá réimse i láthair in `radio_fields, úsáidfidh Django comhéadan cnaipe raidió ina ionad. Ag glacadh leis gurGrúpaisEochair Foreignar an tsamhailDuine:class PersonAdmin(admin.ModelAdmin): radio_fields = {"group": admin.VERTICAL}Tá an rogha agat
HORIZONTALnóVERTICALa úsáid ón modúldjango.contrib.admin.Ná cuir réimse san áireamh i radio_fields` mura bhfuil
ForeignKeyann nó má tá tacar ``roghanna ``ann.
- ModelAdmin.autocomplete_fieldsLink to this definition
Is é
autocomplete_fieldsliosta de réimsíForeignKeyagus/nóManyTomanyFieldar mhaith leat a athrú go Select2 ionchuir uathchomhlánaithe. < https://select2.org/>De réir réamhshocraithe, úsáideann an riarachán comhéadan bosca roghnaithe (<select>```) do na réimsí sin. Uaireanta níl tú ag iarraidh an lasbhreas a thabhairt faoi na cásanna gaolmhara go léir a roghnú le taispeáint sa anuas.
Breathnaíonn an t-ionchur Select2 cosúil leis an ionchur réamhshocraithe ach tagann sé le gné cuardaigh a luchtaíonn na roghanna go gascrónach. Tá sé seo níos tapúla agus níos éasca le húsáid má tá go leor cásanna ag an tsamhail ghaolmhar.
Ní mór duit: attr: ~ModelAdmin.search_fields a shainiú ar ModelAdmin` an réad gaolmhar toisc go n-úsáideann an cuardach uathchomhlánaithe é.
Chun nochtadh sonraí neamhúdaraithe a sheachaint, caithfidh an cead
amharcnóathraithea bheith ag úsáideoirí don réad gaolmhar chun uathchomhlánú a úsáid.Rialaítear ordú agus leathanaigh na dtorthaí ag na modhanna gaolmhara
ModelAdmin: Meth: ~ModelAdmin.get_Ordering agus:meth: ~ModelAdmin.get_Paginator.Sa sampla seo a leanas, tá réimse uathchomhlánaithe ag
ChoiceAdmindon ForeignKey` chuig an Cheiste`. Déantar na torthaí a scagadh ag an réimsequestion_textagus ordaítear leis an réimsedate_created:class QuestionAdmin(admin.ModelAdmin): ordering = ["date_created"] search_fields = ["question_text"] class ChoiceAdmin(admin.ModelAdmin): autocomplete_fields = ["question"]
- ModelAdmin.raw_id_fieldsLink to this definition
De réir réamhshocraithe, úsáideann riarachán Django comhéadan bosca roghnaithe (<select>) do réimsí atá ForeignKey`. Uaireanta níl tú ag iarraidh an lasbhreas a thabhairt faoi na cásanna gaolmhara go léir a roghnú le taispeáint sa anuas anuas.
Is liosta réimsí é
raw_id_fieldsar mhaith leat a athrú go giuirléidInputle haghaidh ForeignKey` nóManyTomanyField:class ArticleAdmin(admin.ModelAdmin): raw_id_fields = ["newspaper"]The
raw_id_fieldsInputwidget should contain a primary key if the field is aForeignKeyor a comma separated list of values if the field is aManyToManyField. Theraw_id_fieldswidget shows a magnifying glass button next to the field which allows users to search for and select a value:
- ModelAdmin.readonly_fieldsLink to this definition
De réir réamhshocraithe taispeánann an riarachán gach réimse mar ineagarthóir. Taispeánfaidh aon réimsí sa rogha seo (ar chóir a bheith ina
liostnótuple) a chuid sonraí mar atá agus neamh-eagarthaithe; tá siad eisiata freisin ó:class: ~django.forms.ModelForm a úsáidtear chun cruthú agus eagarthóireacht. Tabhair faoi deara go gcaithfidh na réimsí léite amháin a bheith i láthair nuair a shonraítear: attr: ModelAdmin.Fields nó: attr: ModelAdmin.FieldSets ní mór na réimsí léite amháin a bheith i láthair le taispeáint (déantar neamhaird orthu ar shlí eile).Má úsáidtear
readonly_fieldsgan ordú follasach a shainiú trí:attr: ModelAdmin.fields nó: attr: ModelAdmin.FieldSets cuirfear iad go deireanach tar éis gach réimse ineagarthóireachta.Ní amháin gur féidir le réimse léite amháin sonraí ó réimse samhail a thaispeáint, féadann sé aschur modh samhail nó modh den rang ``ModelAdmin` féin a thaispeáint freisin. Tá sé seo an-chosúil leis an mbealach: attr: ModelAdmin.list_display iompraíonn. Soláthraíonn sé seo bealach chun an comhéadan riaracháin a úsáid chun aiseolas a sholáthar ar stádas na rudaí atá á chur in eagar, mar shampla:
from django.contrib import admin from django.utils.html import format_html_join from django.utils.safestring import mark_safe class PersonAdmin(admin.ModelAdmin): readonly_fields = ["address_report"] # description functions like a model field's verbose_name @admin.display(description="Address") def address_report(self, instance): # assuming get_full_address() returns a list of strings # for each line of the address and you want to separate each # line by a linebreak return format_html_join( mark_safe("<br>"), "{}", ((line,) for line in instance.get_full_address()), ) or mark_safe("<span class='errors'>I can't determine this address.</span>")
- ModelAdmin.save_asLink to this definition
Socraigh ``save_as ``chun gné “sábháil mar nua” a chumasú ar fhoirmeacha athraithe riaracháin.
De ghnáth, bíonn trí rogha sábhála ag rudaí: “Sábháil”, “Sábháil agus lean ar aghaidh ag eagarthóireacht”, agus “Sábháil agus cuir eile leis”. Más é
save_asTrue`, cuirfear cnaipe “Sábháil mar nua” in ionad “Sábháil agus cuir eile leis” a chruthaíonn réad nua (le ID nua) seachas an réad atá ann cheana a nuashonrú.De réir réamhshocraithe, socraítear
save_asgoFalse.
- ModelAdmin.save_as_continueLink to this definition
When: attr: save_as = True <save_as>, is é an t-atreorú réamhshocraithe tar éis an réad nua a shábháil chuig an radharc athraithe don réad sin. Má shocraíonn tú
save_as_continue=False, beidh an t-atreorú chuig an radharc liosta athraithe.De réir réamhshocraithe, socraítear
save_as_continuegoTrue.
- ModelAdmin.save_on_topLink to this definition
Socraigh
save_on_topchun cnaipí sábhála a chur ar fud barr d'fhoirmeacha athraithe riaracháin.De ghnáth, ní bhíonn na cnaipí sábhála le feiceáil ach ag bun na bhfoirmeacha. Má shocraíonn tú
save_on_top, beidh na cnaipí le feiceáil ar an mbarr agus ar an mbun araon.De réir réamhshocraithe, socraítear
save_on_topgoFalse.
- ModelAdmin.search_fieldsLink to this definition
Socraigh
search_fieldschun bosca cuardaigh a chumasú ar an leathanach liosta athraithe riaracháin. Ba chóir é seo a shocrú ar liosta d'ainmneacha réimse a chuardófar aon uair a chuireann duine fiosrúchán cuardaigh isteach sa bhosca téacs sin.Ba chóir go mbeadh réimse téacs de chineál éigin sna réimsí seo, mar shampla
CharfieldnóTextField. Is féidir leat cuardach gaolmhar a dhéanamh freisin arForeignKeynóManyTomanyFieldleis an notáil “lean” API cuardaigh:search_fields = ["foreign_key__related_fieldname"]Mar shampla, má tá iontráil blag agat le húdar, chuirfeadh an sainmhíniú seo a leanas ar chumas iontrálacha blag a chuardach de réir seoladh ríomhphoist an údair:
search_fields = ["user__email"]Nuair a dhéanann duine cuardach sa bhosca cuardaigh riaracháin, scoilteann Django an fiosrúchán cuardaigh ina bhfocail agus filleann gach rud ina bhfuil gach ceann de na focail, neamh-íogair (ag baint úsáide as an lorga:lookup: icontains lookup), áit a gcaithfidh gach focal a bheith i gceann de search_fields` ar a laghad. Mar shampla, má shocraítear
search_fieldsgo['first_name', 'last_name']agus má chuardaíonn úsáideoirjohn lennon, déanfaidh Django an chomhionann leis an gclásal SQLWHERE:WHERE (first_name ILIKE '%john%' OR last_name ILIKE '%john%') AND (first_name ILIKE '%lennon%' OR last_name ILIKE '%lennon%')Is féidir frásaí luaite le spásanna a bheith san fhiosrúchán cuardaigh. Mar shampla, má dhéanann úsáideoir cuardach ar
"john winston"nó`john winston', déanfaidh Django an coibhéis leis an gclásalWHERESQL seo:WHERE (first_name ILIKE '%john winston%' OR last_name ILIKE '%john winston%')Mura dteastaíonn uait
icontainsa úsáid mar an cuardach, is féidir leat aon chuardach a úsáid tríd an réimse a chur leis. Mar shampla, d'fhéadfá: lookup: exact a úsáid trí search_fields` a shocrú go['first_name__correct'].Tá roinnt aicearraí (níos sine) chun cuardach réimse a shonrú ar fáil freisin. <lookup>Is féidir leat réimse réimse a réamhrú in search_fields` leis na carachtair seo a leanas agus tá sé coibhéiseach le ``__ ``a chur leis an réimse:
Réimír
Cuardaigh
^
=
@
Dada
Más gá duit cuardach a shaincheapadh is féidir leat: meth: ModelAdmin.get_search_results a úsáid chun iompar cuardaigh breise nó malartach a sholáthar.
- ModelAdmin.search_help_textLink to this definition
Socraigh
search_help_textchun téacs tuairisciúil a shonrú don bhosca cuardaigh a thaispeánfar faoin mbosca cuardaigh.
- ModelAdmin.show_full_result_countLink to this definition
Socraigh
show_full_result_countchun rialú a dhéanamh ar chóir líon iomlán na rudaí a thaispeáint ar leathanach riaracháin scagtha (m.sh.99 torthaí (103 iomlán) ``). Má tá an rogha seo socraithe go ``False, taispeántar téacs mar ``99 thorthaí (Taispeáin go léir) ``ina ionad.Gineann réamhshocrú
show_full_result_count=Trueceist chun comhaireamh iomlán a dhéanamh ar an tábla a d'fhéadfadh a bheith daor má tá líon mór sraitheanna sa tábla.
- ModelAdmin.sortable_byLink to this definition
De réir réamhshocraithe, ceadaíonn an leathanach liosta athraithe a shórtáil de réir gach réimse samhail (agus glaonna a úsáideann an argóint
ordingleis an maisitheoir: func: ~django.contrib.admin.display nó a bhfuil an tréith admin_order_field` acu) sonraithe in:attr: list_display.Más mian leat sórtáil a dhíchumasú do roinnt colúin, socraigh
sortable_bychuig bailiúchán (m.sh. list`, tuple`, nóset) den fho-thacar de:attr: list_display a theastaíonn uait a shórtáil. Díchumasaíonn bailiúchán folamh sórtáil do gach colún.Más gá duit an liosta seo a shonrú go dinimiciúil, cuir modh a:meth: ~ModelAdmin.get_sortable_by i bhfeidhm ina ionad.
- ModelAdmin.view_on_siteLink to this definition
Socraigh
view_on_sitechun rialú a dhéanamh an bhfuil an nasc “Amharc ar an láithreán” a thaispeáint nó nach bhfuil. Ba chóir go dtabharfadh an nasc seo tú chuig URL áit ar féidir leat an réad sábháltha a thaispeáint.Is féidir leis an luach seo a bheith ina bhratach boolean nó inghlaonta. Má tá
True(an réamhshocraithe), úsáidfear an modh object's:meth: ~django.db.models.model.get_absolute_url chun an url a ghiniúint.Má tá modh a:meth: ~django.db.models.model.get_absolute_url ag do mhúnla ach nach dteastaíonn uait go mbeadh an cnaipe “Amharc ar an láithreán” le feiceáil, ní gá duit ach view_on_site` a shocrú go
False:from django.contrib import admin class PersonAdmin(admin.ModelAdmin): view_on_site = FalseSa chás go bhfuil sé inghlaonta, glacann sé leis an gcás samhail mar pharaiméadar. Mar shampla:
from django.contrib import admin from django.urls import reverse class PersonAdmin(admin.ModelAdmin): def view_on_site(self, obj): url = reverse("person-detail", kwargs={"slug": obj.slug}) return "https://example.com" + url
Roghanna teimpléad saincheapLink to this heading
The Teimpléid riaracháin forchoitianta section describes how to override or
extend the default admin templates. Use the following options to override the
default templates used by the ModelAdmin views:
- ModelAdmin.add_form_templateLink to this definition
Conair chuig teimpléad saincheaptha, a úsáideann: meth: add_view.
- ModelAdmin.change_form_templateLink to this definition
Conair chuig teimpléad saincheaptha, a úsáideann: meth: change_view.
- ModelAdmin.change_list_templateLink to this definition
Conair chuig teimpléad saincheaptha, a úsáideann: meth: changelist_view.
- ModelAdmin.delete_confirmation_templateLink to this definition
Conair chuig teimpléad saincheaptha, a úsáideann: meth: delete_view chun leathanach dearbhaithe a thaispeáint agus réad amháin nó níos mó á scriosadh.
- ModelAdmin.delete_selected_confirmation_templateLink to this definition
Conair chuig teimpléad saincheaptha, a úsáidtear ag an modh gníomhaíochta delete_selected chun leathanach dearbhaithe a thaispeáint agus réad amháin nó níos mó á scriosadh. Féach na:doc: `@@</ref/contrib/admin/actions> doiciméadú gníomhaíochtaí '.
- ModelAdmin.object_history_templateLink to this definition
Conair chuig teimpléad saincheaptha, a úsáideann: meth: history_view.
- ModelAdmin.popup_response_templateLink to this definition
Conair chuig teimpléad saincheaptha, a úsáideann:: meth: response_add, :meth: response_change, agus:meth: response_delete.
Modhanna ModelAdminLink to this heading
- ModelAdmin.save_model(request, obj, form, change)Link to this definition
Tugtar an HttpRequest` don modh save_model`, sampla samhail, sampla
ModelForm, agus luach boolean bunaithe ar an bhfuil an réad á chur leis nó ag athrú. Ligeann an modh seo a shárú oibríochtaí réamhshábhála nó iar-shábháil a dhéanamh. Glaoigh ar ``super () .save_model () ``chun an réad a shábháil ag baint úsáid:meth: .model.save.Mar shampla chun
request.usera cheangal leis an réad sula ndéantar é a shábháil:from django.contrib import admin class ArticleAdmin(admin.ModelAdmin): def save_model(self, request, obj, form, change): obj.user = request.user super().save_model(request, obj, form, change)
- ModelAdmin.delete_model(request, obj)Link to this definition
Tugtar an HttpRequest` agus sampla samhail don modh delete_model`. Ligeann an modh seo a shárú oibríochtaí réamh-scriosta nó iar-scriosta a dhéanamh. Glaoigh ar ``super () .delete_model () ``chun an réad a scriosadh ag baint úsáid:meth: .model.delete.
- ModelAdmin.delete_queryset(request, queryset)Link to this definition
The
delete_queryset()method is given theHttpRequestand aQuerySetof objects to be deleted. Override this method to customize the deletion process for the "delete selected objects" action.
- ModelAdmin.save_formset(request, form, formset, change)Link to this definition
Tugtar an modh
save_formsetan HttpRequest`, sampla an tuismitheoraModelFormagus luach boolean bunaithe ar cibé an bhfuil sé ag cur nó ag athrú an tuismitheora réad.Mar shampla, chun request.user` a cheangal le gach samhail foirmset athraithe:
class ArticleAdmin(admin.ModelAdmin): def save_formset(self, request, form, formset, change): instances = formset.save(commit=False) for obj in formset.deleted_objects: obj.delete() for instance in instances: instance.user = request.user instance.save() formset.save_m2m()Féach freis:ref: saving-objects-in-the-formset.
- ModelAdmin.get_ordering(request)Link to this definition
Glacann an modh
get_orderingiarraidhmar pharaiméadar agus táthar ag súil go gcuirfidh sé liost` nó tuple` ar ais chun ordú cosúil leis an tréith: attr: ordúna. Mar shampla:class PersonAdmin(admin.ModelAdmin): def get_ordering(self, request): if request.user.is_superuser: return ["name", "rank"] else: return ["name"]
- ModelAdmin.get_search_results(request, queryset, search_term)Link to this definition
Athraíonn an modh
get_search_resultsliosta na rudaí a thaispeántar isteach iad siúd a mheaitseálann an téarma cuardaigh a chuirtear ar fáil. Glacann sé leis an iarratas, tacar cheisteanna a chuireann na scagairí reatha i bhfeidhm, agus an téarma cuardaigh a sholáthraíonn an úsáideoir. Filleann sé tuple ina bhfuil tacar fiosrúcháin arna modhnú chun an cuardach a chur i bhfeidhm, agus boolean a thugann le fios an bhféadfadh dúbailtí a bheith sna torthaí.Déanann an cur i bhfeidhm réamhshocraithe cuardach ar na réimsí a ainmnítear in:attr: ModelAdmin.search_fields.
Féadfar an modh seo a shárú le do mhodh cuardaigh saincheaptha féin. Mar shampla, b'fhéidir gur mhaith leat cuardach a dhéanamh de réir réimse sláimhir, nó uirlis sheachtrach mar Solr nó Haystack a úsáid. Ní mór duit a fháil amach an bhféadfadh na hathruithe tacar fiosrúcháin a chuirtear i bhfeidhm ag do mhodh cuardaigh dúbailtí a thabhairt isteach sna torthaí, agus
Truea thabhairt ar ais sa dara gné den luach tuairisceáin.Mar shampla, chun cuardach a dhéanamh de réir ainm ``agus ``aois`, d'fhéadfá úsáid a bhaint as:
class PersonAdmin(admin.ModelAdmin): list_display = ["name", "age"] search_fields = ["name"] def get_search_results(self, request, queryset, search_term): queryset, may_have_duplicates = super().get_search_results( request, queryset, search_term, ) try: search_term_as_int = int(search_term) except ValueError: pass else: queryset |= self.model.objects.filter(age=search_term_as_int) return queryset, may_have_duplicatesTá an cur i bhfeidhm seo níos éifeachtaí ná
search_fields = ('name', '=age') ``a dtagann comparáid teaghráin don réimse uimhriúil mar thoradh air, mar shampla... NÓ UACHTARACH (“polls_choice”. vótaí” ::text) = UPPER ('4') ``ar PostgreSQL.
Tugtar an modh
save_relatedan HttpRequest`, an tuismitheoir ``ModelForm ``, an liosta foirmeacha inlíne agus luach boolean bunaithe ar an bhfuil an tuismitheoir á chur leis nó á athrú. Anseo is féidir leat aon oibríochtaí réamhshábhála nó iar-shábháil a dhéanamh le haghaidh rudaí a bhaineann leis an tuismitheoir. Tabhair faoi deara go bhfuil an tuismitheoir réad agus a fhoirm sábháilte cheana féin ag an bpointe seo.
- ModelAdmin.get_autocomplete_fields(request)Link to this definition
Tugtar an HttpRequest` don modh
get_autocomplete_fields () ``agus táthar ag súil go bhfaighidh sé ``listnótupled'ainmneacha réimse a thaispeánfar le giuirléid uathchomhlánaithe mar a thuairiscítear thuas sa ranna:attr: ModelAdmin.autocomplete_fields.
- ModelAdmin.get_readonly_fields(request, obj=None)Link to this definition
Tugtar an modh
get_readonly_fieldsan HttpRequest` agus an obj` atá á chur in eagar (nóNonear fhoirm breise) agus táthar ag súil go bhfaighidh liost` nó tuple` d'ainmneacha réimse a thaispeánfar mar léamh amháin, mar a thuairiscítear thuas san: `Read.Model.rannán ly_fields'.
- ModelAdmin.get_prepopulated_fields(request, obj=None)Link to this definition
Tugtar an modh
get_prepopulated_fieldsan HttpRequest` agus an obj` atá á chur in eagar (nóNonear fhoirm breise) agus táthar ag súil go bhfaighidh sé ``foclóir` ar ais, mar a thuairiscítear thuas sa ranna:attr: ModelAdmin.prePopulated_Fields.
- ModelAdmin.get_list_display(request)Link to this definition
Tugtar an HttpRequest` don modh
get_list_displayagus táthar ag súil go bhfaighidh sélistnó tuple` d'ainmneacha réimse a thaispeánfar ar an radharc an liosta athraithe mar a thuairiscítear thuas sa ranna:attr: ModelAdmin.list_display.
- ModelAdmin.get_list_display_links(request, list_display)Link to this definition
Tugtar an
HttpRequestdon modhget_list_display_linksagus an list` nótuplear ais ar:meth: ModelAdmin.get_list_display. Táthar ag súil go bhfillfidh séNonenóliostnótupled'ainmneacha réimse ar an liosta athraithe a bheidh nasctha leis an radharc athraithe, mar a thuairiscítear sa ranna:attr: ModelAdmin.list_display_links.
- ModelAdmin.get_exclude(request, obj=None)Link to this definition
Tugtar an modh
get_excludean HttpRequest` agus an obj` atá á chur in eagar (nóNonear fhoirm breise) agus táthar ag súil go gcuirfidh sé liosta réimsí ar ais, mar a thuairiscítear in:attr: ModelAdmin.exclude.
- ModelAdmin.get_fields(request, obj=None)Link to this definition
Tugtar an modh
get_fieldsan HttpRequest` agus an obj` atá á chur in eagar (nóNonear fhoirm bhreise) agus táthar ag súil go gcuirfidh sé liosta réimsí ar ais, mar a thuairiscítear thuas sa roinn:attr: ModelAdmin.fields.
- ModelAdmin.get_fieldsets(request, obj=None)Link to this definition
<fieldset>Tugtar an modh
get_fieldsetsan HttpRequest` agus an obj` atá á chur in eagar (nóNonear fhoirm bhreise) agus táthar ag súil go bhfaighidh sé liosta 2-tuples ar ais, ina léiríonn gach 2-tuple ``ar leathanach na foirme riaracháin, mar a thuairiscítear thuas in:attr: Adminmodel.fieldsets rannán.
- ModelAdmin.get_list_filter(request)Link to this definition
Tugtar an HttpRequest` don modh
get_list_filteragus táthar ag súil go bhfaighidh sé an cineál céanna seicheamh ar ais leis an tréith: attr: ~ModelAdmin.list_filter.
Tugtar an HttpRequest` don modh
get_list_select_relatedagus ba cheart boolean nó liosta a thabhairt ar ais mar: attr: ModelAdmin.list_Select_Related a dhéanann.
- ModelAdmin.get_search_fields(request)Link to this definition
Tugtar an HttpRequest` don modh
get_search_fieldsagus táthar ag súil go bhfaighidh sé an cineál céanna seicheamh ar ais mar thréith: attr: ~ModelAdmin.search_fields.
- ModelAdmin.get_sortable_by(request)Link to this definition
Tá an modh
get_sortable_by () ``rith an `HttpRequestagus táthar ag súil go bhfaighidh sé bailiúchán (m.sh. list`, tuple`, nóset) d'ainmneacha réimse a shórtálfar ar an leathanach liosta athraithe.Filleann a chur i bhfeidhm réamhshocraithe:attr: sortable_by má tá sé socraithe, ar shlí eile cuirtear iarchur chuig: meth: get_list_display.
Mar shampla, chun colún amháin nó níos mó a chosc ó bheith inscartha:
class PersonAdmin(admin.ModelAdmin): def get_sortable_by(self, request): return {*self.get_list_display(request)} - {"rank"}
- ModelAdmin.get_inline_instances(request, obj=None)Link to this definition
Tugtar an modh
get_inline_instancesan HttpRequest` agus an obj` atá á chur in eagar (nóNonear fhoirm breise) agus táthar ag súil go bhfaighidh sé rudaílistnó tuple` o:class: ~django.contrib.admin.inlineModelAdmin, mar a thuairiscítear thíos :class: ~django.contrib.admin.inlineModelAdmin rannán. Mar shampla, chuirfeadh an méid seo a leanas ar ais inlíne gan an scagadh réamhshocraithe bunaithe ar cheadanna a chur leis, a athrú, a scriosadh agus féachaint:class MyModelAdmin(admin.ModelAdmin): inlines = [MyInline] def get_inline_instances(self, request, obj=None): return [inline(self.model, self.admin_site) for inline in self.inlines]Má sháraíonn tú an modh seo, déan cinnte gur cásanna iad na línte a thugtar ar ais de na ranganna atá sainmhínithe in:attr: inlines nó d'fhéadfadh go mbeadh earráid “Droch-iarratas” ort agus rudaí gaolmhara á chur leis.
- ModelAdmin.get_inlines(request, obj)Link to this definition
Tugtar an modh
get_inlinesan HttpRequest` agus anobjatá á chur in eagar (nóNonear fhoirm bhreise) agus táthar ag súil go bhfaighidh sé athrá inlíne ar ais. Is féidir leat an modh seo a shárú chun inlínte a chur go dinimiciúil bunaithe ar an iarratas nó an samhail samhail in ionad iad a shonrú in:attr: ModelAdmin.inlines.
- ModelAdmin.get_urls()Link to this definition
The
get_urlsmethod on aModelAdminreturns the URLs to be used for that ModelAdmin in the same way as a URLconf. Therefore you can extend them as documented in URL dispatcher, using theAdminSite.admin_view()wrapper on your views:from django.contrib import admin from django.template.response import TemplateResponse from django.urls import path class MyModelAdmin(admin.ModelAdmin): def get_urls(self): urls = super().get_urls() my_urls = [path("my_view/", self.admin_site.admin_view(self.my_view))] return my_urls + urls def my_view(self, request): # ... context = dict( # Include common variables for rendering the admin template. self.admin_site.each_context(request), # Anything else you want in the context... key=value, ) return TemplateResponse(request, "sometemplate.html", context)Más mian leat an leagan amach riaracháin a úsáid, síneadh ó
admin/base_site.html:{% extends "admin/base_site.html" %} {% block content %} ... {% endblock %}Má tá an leathanach incháilithe, ach má theastaíonn uait fós go ndéanfaí an seiceáil ceada, is féidir leat argóint
cacheable=Truea chur ar aghaidh chuig adminsite.admin_view () `:path("my_view/", self.admin_site.admin_view(self.my_view, cacheable=True))Tá tréithe
model_admin ``ag tuairimí ``ModelAdmin. Tá tréitheadmin_siteag tuairimí adminSite` eile.
- ModelAdmin.get_form(request, obj=None, **kwargs)Link to this definition
Tuairisceáin a:class: ~django.forms.ModelForm rang le húsáid sa riarachán tuairimí cuir agus athraigh, féach:meth: add_view agus:meth: change_view.
Úsáideann an cur i bhfeidhm bonn:func: ~django.forms.models.modelform_factory go fo-aicme: attr: ~form, modhnaithe ag tréithe mar: attr: ~fields agus:attr: ~fields agus:attr: `~ eisiúint `. Mar sin, mar shampla, dá dteastaíonn uait réimsí breise a thairiscint do sárúsáideoirí, d'fhéadfá malartú i bhfoirm bhonn difriúil mar sin:
class MyModelAdmin(admin.ModelAdmin): def get_form(self, request, obj=None, **kwargs): if request.user.is_superuser: kwargs["form"] = MySuperuserForm return super().get_form(request, obj, **kwargs)Féadfaidh tú rang saincheap:class: ~django.forms.ModelForm a thabhairt ar ais go díreach freisin.
- ModelAdmin.get_formsets_with_inlines(request, obj=None)Link to this definition
Péirí torthaí (
FormSet, :class: InlineModelAdmin) le húsáid i riarachán tuairimí a chur leis agus a athrú.Mar shampla más mian leat inlíne áirithe a thaispeáint sa radharc athraithe amháin, d'fhéadfá
get_formsets_with_inlinesa shárú mar seo a leanas:class MyModelAdmin(admin.ModelAdmin): inlines = [MyInline, SomeOtherInline] def get_formsets_with_inlines(self, request, obj=None): for inline in self.get_inline_instances(request, obj): # hide MyInline in the add view if not isinstance(inline, MyInline) or obj is not None: yield inline.get_formset(request, obj), inline
- ModelAdmin.formfield_for_foreignkey(db_field, request, **kwargs)Link to this definition
Ligeann an modh
formfield_for_foreignkeyar ModelAdmin` duit an réimse foirme réamhshocraithe do réimse eochracha eachtracha eachtracha a shárú. Mar shampla, chun fo-thacar rudaí a thabhairt ar ais don phríomhréimse eachtrach seo bunaithe ar an úsáideoir:class MyModelAdmin(admin.ModelAdmin): def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "car": kwargs["queryset"] = Car.objects.filter(owner=request.user) return super().formfield_for_foreignkey(db_field, request, **kwargs)Úsáideann sé seo an tsampla HttpRequest` chun an réimse eochair eachtrach
Cara scagadh chun na gluaisteáin atá faoi úinéireacht an ``Úsáideora ``a thaispeáint ach amháin.Le haghaidh scagairí níos casta, is féidir leat
ModelForm a úsáid. Modh __init__ () ``chun scagadh bunaithe ar `instancede do mhúnla (féach:ref: fields-what-handle-reachships). Mar shampla:class CountryAdminForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["capital"].queryset = self.instance.cities.all() class CountryAdmin(admin.ModelAdmin): form = CountryAdminForm
- ModelAdmin.formfield_for_manytomany(db_field, request, **kwargs)Link to this definition
Cosúil leis an modh
formfield_for_foreignkey, is féidir an modhformfield_for_manytomanya athrú chun an réimse foirme réamhshocraithe do réimse go leor réimse a athrú. Mar shampla, más féidir le húinéir ilghluaisteáin a bheith ag úinéir agus is féidir gluaisteáin a bheith bainteach le go leor úinéirí -- d'fhéadfá an réimse eochair eachtrach ``Carr` a scagadh chun na gluaisteáin atá faoi úinéireacht an ``Úsáideora ``a thaispeáint amháin:class MyModelAdmin(admin.ModelAdmin): def formfield_for_manytomany(self, db_field, request, **kwargs): if db_field.name == "cars": kwargs["queryset"] = Car.objects.filter(owner=request.user) return super().formfield_for_manytomany(db_field, request, **kwargs)
- ModelAdmin.formfield_for_choice_field(db_field, request, **kwargs)Link to this definition
Cosúil leis na modhanna
formfield_for_foreignkeyagusformfield_for_manytomany, is féidir an modhformfield_for_choice_fielda athrú chun an réimse foirme réamhshocraithe a athrú do réimse a bhfuil roghanna dearbhaithe aige. Mar shampla, más chóir go mbeadh na roghanna atá ar fáil do sárúsáideoir difriúil ná na roghanna atá ar fáil d'fhoireann rialta, d'fhéadfá dul ar aghaidh mar seo a leanas:class MyModelAdmin(admin.ModelAdmin): def formfield_for_choice_field(self, db_field, request, **kwargs): if db_field.name == "status": kwargs["choices"] = [ ("accepted", "Accepted"), ("denied", "Denied"), ] if request.user.is_superuser: kwargs["choices"].append(("ready", "Ready for deployment")) return super().formfield_for_choice_field(db_field, request, **kwargs)
- ModelAdmin.get_changelist(request, **kwargs)Link to this definition
Filleann sé an rang
Changelistatá le húsáid le haghaidh liostú. De réir réamhshocraithe, úsáidteardjango.contrib.admin.views.main.changeList. Trí an rang seo a oidhreacht is féidir leat iompar an liostaithe a athrú.
- ModelAdmin.get_changelist_form(request, **kwargs)Link to this definition
Tuairisceann a:class: ~django.forms.ModelForm rang le húsáid sa
FormSetar an leathanach liosta athraithe. Chun foirm saincheaptha a úsáid, mar shampla:from django import forms class MyForm(forms.ModelForm): pass class MyModelAdmin(admin.ModelAdmin): def get_changelist_form(self, request, **kwargs): return MyForm
- ModelAdmin.get_changelist_formset(request, **kwargs)Link to this definition
Tuairisceáin a:ref: ModelFormSet <model-formsets>`aicme le húsáid ar an leathanach liosta athraithe má úsáidtear: attr: `~ModelAdmin.list_editable. Chun tacar foirme saincheaptha a úsáid, mar shampla:
from django.forms import BaseModelFormSet class MyAdminFormSet(BaseModelFormSet): pass class MyModelAdmin(admin.ModelAdmin): def get_changelist_formset(self, request, **kwargs): kwargs["formset"] = MyAdminFormSet return super().get_changelist_formset(request, **kwargs)
- ModelAdmin.lookup_allowed(lookup, value, request)Link to this definition
Is féidir na rudaí ar leathanach an liosta athraithe a scagadh le cuardaigh ó shreang fiosrúcháin an URL. Seo mar a oibríonn: attr: list_filter, mar shampla. Tá na cuardaigh cosúil leis an méid a úsáidtear in:meth: .querySet.filter (m.sh. ``user__email= user@example.com ``). Ós rud é gur féidir leis an úsáideoir na cuardaigh sa sreangán fiosrúcháin a ionramháil, caithfear iad a shláintiú chun nochtadh sonraí neamhúdaraithe a chosc.
Tugtar cosán cuardaigh don modh
lookup_allow () ``ón sreang ceisteanna (m.sh. ```user__email'), an luach comhfhreagrach (m.sh.`user@example.com '), agus an t-iarratas, agus tugann sé boolean ag tabhairt le fios an bhfuil ceadaithe ag scagadhQuerySetag baint úsáide as na paraiméadair. Má fhilleannlookup_allow () ```False,, DisallowedModelAdminlookup`` (fo-aicme de:exc: ~Django.Core.Exceptions.SuspiciousOperation) a ardaítear.De réir réamhshocraithe, ceadaíonn ``lookup_allow () ``rochtain ar réimsí áitiúla samhail, cosáin réimse a úsáidtear in:attr: ~ModelAdmin.list_filter (ach ní cosáin ó:meth: ~ModelAdmin.get_list_filter), agus cuardaigh atá ag teastáil le haghaidh: attr: ~Django.db.models.foreignkey.limit_choices_to feidhmiú i gceart in:attr: ~django.contrib.admin.modeladmin.raw_id_fields.
Athraigh an modh seo chun na cuardaigh a cheadaítear do d'fho-aicme: ~django.contrib.admin.modelAdmin a shaincheapadh.
- ModelAdmin.has_view_permission(request, obj=None)Link to this definition
Ba chóir
Truea thabhairt ar ais má cheadaítear féachaint arobj, False` ar shlí eile. Más é objNone, ba cheartTruenó False` a thabhairt ar ais chun a léiriú an bhfuil ceadaithe féachaint ar rudaí den chineál seo go ginearálta (m.sh., léirmhínítearFalsemar a chiallaíonn nach ceadaítear don úsáideoir reatha aon rud den chineál seo a fheiceáil).Tugann an cur i bhfeidhm réamhshocraithe
Truear ais má tá an cead “athraigh” nó “féachaint” ag an úsáideoir.
- ModelAdmin.has_add_permission(request)Link to this definition
Ba chóir
Truea thabhairt ar ais má cheadaítear réad a chur leis,Falsear shlí eile.
- ModelAdmin.has_change_permission(request, obj=None)Link to this definition
Ba chóir
Truea thabhairt ar ais má cheadaítearobjeagarthóireacht,Falsear shlí eile. Má táobjNone, ba cheartTruenó False` a thabhairt ar ais chun a léiriú an bhfuil ceadaithe eagarthóireacht rudaí den chineál seo i gcoitinne (m.sh., léirmhínítearFalsemar a chiallaíonn nach ceadaítear don úsáideoir reatha aon rud den chineál seo a chur in eagar).
- ModelAdmin.has_delete_permission(request, obj=None)Link to this definition
Ba chóir
Truea thabhairt ar ais má cheadaítearobja scriosadh,Falsear shlí eile. Má táobjNone, ba cheartTruenó False` a thabhairt ar ais chun a léiriú an gceadaítear rudaí den chineál seo a scriosadh go ginearálta (m.sh., léirmhínítearFalsemar a chiallaíonn nach ceadaítear don úsáideoir reatha aon rud den chineál seo a scriosadh).
- ModelAdmin.has_module_permission(request)Link to this definition
Ba chóir go bhfilleadh
Truemá cheadaítear an modúl a thaispeáint ar leathanach innéacs an riaracháin agus rochtain a fháil ar leathanach innéacs an mhodúil,Falsear shlí eile. <django.contrib.auth.models.User.has_module_perms>Úsáid:Meth: User.has_module_perms () `de réir réamhshocraithe. Ní chuireann sé srian ar rochtain ar an radharc, cuir, athrú nó scriosadh radhairc, :meth: `~modeladmin.has_view_permission, :meth: ~modeladmin.has_add_permission, :meth: ~ModelAdmin.has_Change_Permission, agus:meth: ~ModelAdmin.has_delete_permission a úsáid chuige sin.
- ModelAdmin.get_queryset(request)Link to this definition
Tugann an modh get_queryset` ar ModelAdmin` a: class: ~django.db.models.queryset de gach cás samhail is féidir leis an suíomh riaracháin a chur in eagar. Cás úsáide amháin chun an modh seo a shárú is ea rudaí atá faoi úinéireacht an úsáideora logáilte isteach a thaispeáint:
class MyModelAdmin(admin.ModelAdmin): def get_queryset(self, request): qs = super().get_queryset(request) if request.user.is_superuser: return qs return qs.filter(author=request.user)
- ModelAdmin.message_user(request, message, level=messages.INFO, extra_tags='', fail_silently=False)Link to this definition
Sends a message to the user using the
django.contrib.messagesbackend. See the custom ModelAdmin example.Ligeann argóintí eochairfhocal duit leibhéal na teachtaireachta a athrú, clibeanna CSS breise a chur leis, nó teip go ciúin mura bhfuil an creat contrib.messages suiteáilte. Meaitseálann na hargóintí eochairfhocal seo leo siúd le haghaidh: func: django.contrib.messages.add_message, féach doiciméadú na feidhme sin le haghaidh tuilleadh sonraí. Difríocht amháin is ea go bhféadfar an leibhéal a rith mar lipéad teaghrán i dteannta le sláin/tairiseach.
- ModelAdmin.get_paginator(request, queryset, per_page, orphans=0, allow_empty_first_page=True)Link to this definition
Tugann sé sampla den paginator ar ais le húsáid don radharc seo. De réir réamhshocraithe, cruthaíonn sé sampla de:attr: paginator.
- ModelAdmin.response_add(request, obj, post_url_continue=None)Link to this definition
Cinneann sé an:class: ~django.http.httpResponse don chéime:meth: add_view.
Glaofar response_add` tar éis an fhoirm riaracháin a chur isteach agus díreach tar éis an réad agus na cásanna gaolmhara go léir a chruthú agus a shábháil. Is féidir leat é a shárú chun an t-iompar réamhshocraithe a athrú tar éis an réad a chruthú.
- ModelAdmin.response_change(request, obj)Link to this definition
Cinneann sé an:class: ~django.http.httpResponse don chéime:meth: change_view.
Glaofar response_change` tar éis an fhoirm riaracháin a chur isteach agus díreach tar éis an réad agus na cásanna gaolmhara go léir a shábháil. Is féidir leat é a shárú chun an t-iompar réamhshocraithe a athrú tar éis an réad a athrú.
- ModelAdmin.response_delete(request, obj_display, obj_id)Link to this definition
Cinneann sé an:class: ~django.http.httpResponse don chéime:meth: delete_view.
Glaofar ar response_delete` tar éis an réad a scriosadh. Is féidir leat é a shárú chun an t-iompar réamhshocraithe a athrú tar éis an réad a scriosadh.
Is teaghrán é
obj_displayle hainm an réad scriosta.Is é
obj_idan t-aitheantóir sraitheach a úsáidtear chun an réad atá le scriosadh a aisghabháil.
- ModelAdmin.get_formset_kwargs(request, obj, inline, prefix)Link to this definition
Crúca chun na hargóintí eochairfhocal a shaincheapadh chuig tógálaí foirmshraith. Mar shampla, chun
iarrata chur chuig foirmeacha foirmeacha:class MyModelAdmin(admin.ModelAdmin): def get_formset_kwargs(self, request, obj, inline, prefix): return { **super().get_formset_kwargs(request, obj, inline, prefix), "form_kwargs": {"request": request}, }Is féidir leat é a úsáid freisin chun
initiala shocrú d'fhoirmeacha foirmeacha.
- ModelAdmin.get_changeform_initial_data(request)Link to this definition
Croca do na sonraí tosaigh ar fhoirmeacha athraithe riaracháin. De réir réamhshocraithe, tugtar luachanna tosaigh do réimsí ó pharaiméadair GET`. Mar shampla,
? name=initial_valuesocróidh luach tosaigh an réimseainmmarluach_inicial.Ba chóir don modh seo foclóir a thabhairt ar ais sa fhoirm
{'fieldname': 'fieldval'}:def get_changeform_initial_data(self, request): return {"name": "custom_initial_value"}
- ModelAdmin.get_deleted_objects(objs, request)Link to this definition
A hook for customizing the deletion process of the
delete_view()and the "delete selected" action.Is é an argóint
objs ``is athraitheach aonchineálach de rudaí (``QuerySetnó liosta cásanna samhail) atá le scriosadh, agus is érequestan:class: ~django.http.httpRequest.Caithfidh an modh seo 4-tuple de
(deleted_objects, model_count, perms_needed, protected)a thabhairt ar ais.Is liosta de na teaghráin is ea deleted_objects` a léiríonn na rudaí go léir a scriosfar. Má tá aon rudaí gaolmhara le scriosadh, tá an liosta neadaithe agus tá na rudaí gaolmhara sin san áireamh. Déantar an liosta a fhormáidiú sa teimpléad ag baint úsáide as an scagair:tfilter: unordered_list.
Is foclóir é
model_countmapáil gach samhail's:attr: ~django.db.models.options.verbose_name_plural ar líon na rudaí a scriosfar.Is é
perms_neededsraith de:attr: ~django.db.models.options.verbose_names de na samhlacha nach bhfuil cead ag an úsáideoir a scriosadh.Is liosta de na teaghráin a léiríonn na rudaí gaolmhara cosanta go léir nach féidir iad a scriosadh. Taispeántar an liosta sa teimpléad.
Modhanna eileLink to this heading
- ModelAdmin.add_view(request, form_url='', extra_context=None)Link to this definition
Amharc Django don leathanach breise samhail samhail. Féach an nóta thíos.
- ModelAdmin.change_view(request, object_id, form_url='', extra_context=None)Link to this definition
Amharc Django don leathanach eagarthóireachta sampla samhail. Féach an nóta thíos.
- ModelAdmin.changelist_view(request, extra_context=None)Link to this definition
Amharc Django don leathanach athraithe cásanna samhail liosta/gníomhartha. Féach an nóta thíos.
- ModelAdmin.delete_view(request, object_id, extra_context=None)Link to this definition
Amharc Django do leathanach dearbhaithe scriosadh samhail (í) samhail. Féach an nóta thíos.
- ModelAdmin.history_view(request, object_id, extra_context=None)Link to this definition
Amharc Django don leathanach a thaispeánann stair an mhodhnaithe do shampla samhail ar leith.
Murab ionann agus na modhanna ModelAdmin de chineál haca a sonraíodh sa chuid roimhe seo, tá na cúig mhodh seo deartha i ndáiríre chun iad a ghairm mar thuairimí Django ó láimhseálaí seolta URL an fheidhmchláir riaracháin chun na leathanaigh a dhéileálann le cásanna samhail oibríochtaí CRUD a rinneadh. Mar thoradh air sin, athróidh na modhanna seo a shárú go hiomlán iompar an fheidhmchláir riaracháin go suntasach.
Cúis choitianta amháin chun na modhanna seo a shárú is ea na sonraí comhthéacs a chuirtear ar fáil don teimpléad a léiríonn an dearcadh a mhéadú. Sa sampla seo a leanas, cuirtear an dearcadh athraithe a athrú ionas go gcuirtear roinnt sonraí mapála breise ar fáil don teimpléad rindreáilte nach mbeadh ar fáil ar shlí eile:
class MyModelAdmin(admin.ModelAdmin):
# A template for a very customized change view:
change_form_template = "admin/myapp/extras/openstreetmap_change_form.html"
def get_osm_info(self):
# ...
pass
def change_view(self, request, object_id, form_url="", extra_context=None):
extra_context = extra_context or {}
extra_context["osm_data"] = self.get_osm_info()
return super().change_view(
request,
object_id,
form_url,
extra_context=extra_context,
)
Tugann na tuairimí seo ar ais: class: ~django.template.Response.TemplateResponse cásanna a ligeann duit na sonraí freagartha a shaincheapadh go héasca sula ndéantar iad a rindreáil. Le haghaidh tuilleadh sonraí, féach an:doc: `TemplateResponse doiciméadúcháin </ref/template-response>.
Sainmhínithe sócmhainní ModelAdminLink to this heading
Tá amanna ann nuair ba mhaith leat beagán CSS agus/nó JavaScript a chur leis na tuairimí a chur leis na tuairimí a chur leis /athraigh. Is féidir é seo a chur i gcrích trí rang istigh Meáin ``a úsáid ar do `ModelAdmin:
class ArticleAdmin(admin.ModelAdmin):
class Media:
css = {
"all": ["my_styles.css"],
}
js = ["my_code.js"]
Tá an aip: doc: staticfiles `réasúnaí:socrú: `STATIC_URL (nó</ref/contrib/staticfiles> :socrú: MEDIA_URL más:socrú: STATIC_URL` ``None) le haon chosáin sócmhainní. <form-asset-paths>Tá na rialacha céanna i bhfeidhm as:ref: `sainmhínithe rialta sócmhainní ar fhoirmeacha `.
jQueryLink to this heading
Baineann JavaScript admin Django úsáid as an leabharlann `jQuery `_.
Chun coinbhleachtaí a sheachaint le scripteanna nó leabharlanna a sholáthraíonn an úsáideoir, déantar jQuery Django (leagan 3.7.1) spás ainmneacha mar “Django.jQuery”. Más mian leat jQuery a úsáid i do JavaScript riaracháin féin gan an dara cóip a áireamh, is féidir leat an réad Django.jQuery ``a úsáid ar changelist agus tuairimí a chur leis /eagar. <assets-as-a-static-definition>Chomh maith leis sin, ní mór d'fhoirmeacha nó giuirléidí riaracháin féin ag brath ar ``django.jQuery ``js= ['admin/js/jquery.init.js',...] ``a shonrú nuai:ref: `sócmhainní meán foirm a dhearbhú `.
Éilíonn an rang:Class: ModelAdmin jQuery de réir réamhshocraithe, mar sin ní gá jQuery a chur le liosta d'acmhainní meán ``ModelAdmin` mura bhfuil riachtanas sonrach agat. Mar shampla, má theastaíonn uait go mbeidh leabharlann jQuery sa spás ainmneacha domhanda (mar shampla agus breiseáin jQuery tríú páirtí á úsáid agat) nó má theastaíonn leagan níos nuaí de jQuery uait, beidh ort do chóip féin a chur san áireamh.
Soláthraíonn Django leaganacha neamhchomhbhrúite agus 'minified' de jQuery araon, mar jquery.js ``agus ``jquery.min.js faoi seach.
ModelAdmin and InlineModelAdmin have a media property
that returns a list of Media objects which store paths to the JavaScript
files for the forms and/or formsets. If DEBUG is True it will
return the uncompressed versions of the various JavaScript files, including
jquery.js; if not, it will return the 'minified' versions.
InlineModelAdmin rudaíLink to this heading
- class InlineModelAdminLink to this definition
- class TabularInlineLink to this definition
- class StackedInlineLink to this definition
Tá sé de chumas ag an gcomhéadan riaracháin samhlacha a chur in eagar ar an leathanach céanna le samhail tuismitheora. Tugtar inlines orthu seo. Cuir i gcás go bhfuil an dá mhúnla seo agat:
from django.db import models class Author(models.Model): name = models.CharField(max_length=100) class Book(models.Model): author = models.ForeignKey(Author, on_delete=models.CASCADE) title = models.CharField(max_length=100)Is féidir leat na leabhair a d'údar údar a chur in eagar ar leathanach an údair. Cuireann tú inlines le samhail trí iad a shonrú i
ModelAdmin.inlines:from django.contrib import admin from myapp.models import Author, Book class BookInline(admin.TabularInline): model = Book class AuthorAdmin(admin.ModelAdmin): inlines = [ BookInline, ] admin.site.register(Author, AuthorAdmin)Soláthraíonn Django dhá fho-aicme de
InlineModelAdminagus is iad seo:Níl an difríocht idir an dá cheann seo ach an teimpléad a úsáidtear chun iad a léiriú.
Roghanna InlineModelAdminLink to this heading
Roinneann InlineModelAdmin go leor de na gnéithe céanna le ModelAdmin, agus cuireann sé cuid dá chuid féin leis (sainmhínítear na gnéithe roinnte i ndáiríre sa sáraicme BaseModelAdmin). Is iad na gnéithe roinnte:
: meth: ~ModelAdmin.get_fieldsets
Cuireann an rang InlineModelAdmin leis nó a shaincheapadh:
- InlineModelAdmin.modelLink to this definition
An tsamhail atá ag baint úsáide as an inlíne. Tá sé seo ag teastáil.
- InlineModelAdmin.fk_nameLink to this definition
Ainm an eochair eachtrach ar an tsamhail. I bhformhór na gcásanna déileálfar leis seo go huathoibríoch, ach caithfear
fk_namea shonrú go sainráite má tá níos mó ná eochair eachtrach amháin ann don tsamhail thuismitheora céanna.
- InlineModelAdmin.formsetLink to this definition
Tá sé seo réamhshocraithe chuig: aicme: ~django.forms.models.baseinlineFormSet. Is féidir go leor féidearthachtaí saincheaptha a thabhairt duit a úsáid do shraith foirme féin. <model-formsets>Tógtar inlínte timpeall: ref: `model formsets `.
- InlineModelAdmin.formLink to this definition
Tá an luach do foirm ``réamhshocraithe go ``ModelForm`. Seo an rud a chuirtear trí:func: ~django.forms.models.inlineformset_factory agus an foirmset á chruthú don inlíne seo.
Mar shampla féach an rannáit:ref: admin-custom-validation.
- InlineModelAdmin.classesLink to this definition
Liosta nó tuple ina bhfuil ranganna breise CSS le cur i bhfeidhm ar an tacar réimse a rinneadh do na línte inlíne. Réamhshocraithe go
None. Mar is amhlaidh le ranganna atá cumraithe in:attr: ~ModelAdmin.FieldSets, titeofar inlínte le rang ``collise` i dtosach ag baint úsáide as giuirléid leathnaithe.
- InlineModelAdmin.extraLink to this definition
Rialaíonn sé seo líon na bhfoirmeacha breise a thaispeánfaidh an tacar foirme chomh maith leis na foirmeacha tosaigh. Réamhshocraithe go 3. Féach na:doc: formsets doiciméadach le haghaidh tuilleadh eolais. </topics/forms/formsets>
Maidir le húsáideoirí a bhfuil brabhsálaithe cumasaithe ag JavaScript acu, cuirtear nasc “Cuir eile leis” ar fáil chun aon líon inlíne breise a chur leis i dteannta leo siúd a chuirtear ar fáil mar thoradh ar an argóint
breise.Ní bheidh an nasc dinimiciúil le feiceáil má sháraíonn líon na bhfoirmeacha atá ar taispeáint faoi láthair
max_num, nó mura bhfuil JavaScript cumasaithe ag an úsáideoir.InlineModelAdmin.get_extra()also allows you to customize the number of extra forms.
- InlineModelAdmin.max_numLink to this definition
Rialaíonn sé seo an líon uasta na bhfoirmeacha atá le taispeáint san inlíne. Ní bhaineann sé seo go díreach le líon na rudaí, ach is féidir má tá an luach beag go leor. Féach: ref: model-formsets-max-num le haghaidh tuilleadh faisnéise.
InlineModelAdmin.get_max_num()also allows you to customize the maximum number of extra forms.
- InlineModelAdmin.min_numLink to this definition
Rialaíonn sé seo an líon íosta foirmeacha atá le taispeáint san inlíne. Féach: func: ~django.forms.models.modelformset_factory le haghaidh tuilleadh faisnéise.
InlineModelAdmin.get_min_num()also allows you to customize the minimum number of displayed forms.
- InlineModelAdmin.raw_id_fieldsLink to this definition
De réir réamhshocraithe, úsáideann riarachán Django comhéadan bosca roghnaithe (<select>) do réimsí atá ForeignKey`. Uaireanta níl tú ag iarraidh an lasbhreas a thabhairt faoi na cásanna gaolmhara go léir a roghnú le taispeáint sa anuas anuas.
Is liosta réimsí é
raw_id_fieldsar mhaith leat a athrú go giuirléidInputle haghaidh ForeignKey` nóManyTomanyField:class BookInline(admin.TabularInline): model = Book raw_id_fields = ["pages"]
- InlineModelAdmin.templateLink to this definition
An teimpléad a úsáidtear chun an líne a léiriú ar an leathanach.
- InlineModelAdmin.verbose_nameLink to this definition
Athrú chuig an:attr: ~django.db.models.options.verbose_name ó rang Meta` istigh an tsamhail.
- InlineModelAdmin.verbose_name_pluralLink to this definition
Athrú chuig an: attr: ~django.db.models.options.verbose_name_plural ó rang Meta` istigh an tsamhail. Mura dtugtar é seo agus mura sainmhínítear an:attr: .inlineModelAdmin.verbose_name, úsáidfidh Django:attr: .inlineModelAdmin.verbose_name +
's'.
- InlineModelAdmin.can_deleteLink to this definition
Sonraíonn sé cibé an féidir rudaí inlíne a scriosadh sa líne nó nach bhfuil. Réamhshocraithe go
True.
- InlineModelAdmin.show_change_linkLink to this definition
Sonraíonn sé an bhfuil nasc leis an bhfoirm athraithe ag rudaí inlíne is féidir a athrú sa riarachán nó nach bhfuil. Réamhshocraithe go
False.
- InlineModelAdmin.get_formset(request, obj=None, **kwargs)Link to this definition
Tuairisceáin a:class: ~Django.Forms.Models.BaseinlineFormSet rang le húsáid i riarachán tuairimí a chur leis /athraigh. Is é
objan tuismitheoir réad atá á chur in eagar nó ``None ``nuair a chuirtear tuismitheoir nua leis. Féach an sampla le haghaidh: class: ModelAdmin.get_formSets_with_inlines.
- InlineModelAdmin.get_extra(request, obj=None, **kwargs)Link to this definition
Tugann sé líon na bhfoirmeacha inlíne breise atá le húsáid ar ais. De réir réamhshocraithe, filleann an tréith: attr: InlineModelAdmin.extra.
Athraigh an modh seo chun líon na bhfoirmeacha inlíne breise a chinneadh go cláraitheach. Mar shampla, d'fhéadfadh sé seo a bheith bunaithe ar an samhail samhail (a rith mar an argóint eochairfhocal ``obj ``):
class BinaryTreeAdmin(admin.TabularInline): model = BinaryTree def get_extra(self, request, obj=None, **kwargs): extra = 2 if obj: return extra - obj.binarytree_set.count() return extra
- InlineModelAdmin.get_max_num(request, obj=None, **kwargs)Link to this definition
Tugann sé an líon uasta na bhfoirmeacha inlíne breise le húsáid ar ais. De réir réamhshocraithe, filleann an tréith: attr: inlineModelAdmin.max_num.
Athraigh an modh seo chun líon uasta na bhfoirmeacha inlíne a chinneadh go cláraitheach. Mar shampla, d'fhéadfadh sé seo a bheith bunaithe ar an samhail samhail (a rith mar an argóint eochairfhocal ``obj ``):
class BinaryTreeAdmin(admin.TabularInline): model = BinaryTree def get_max_num(self, request, obj=None, **kwargs): max_num = 10 if obj and obj.parent: return max_num - 5 return max_num
- InlineModelAdmin.get_min_num(request, obj=None, **kwargs)Link to this definition
Tugann sé an líon íosta foirmeacha inlíne atá le húsáid ar ais. De réir réamhshocraithe, filleann an tréith: attr: inlineModelAdmin.min_num.
Athraigh an modh seo chun líon íosta na bhfoirmeacha inlíne a chinneadh go cláraithe. Mar shampla, d'fhéadfadh sé seo a bheith bunaithe ar an samhail samhail (a rith mar an argóint eochairfhocal ``obj ``).
- InlineModelAdmin.has_add_permission(request, obj)Link to this definition
Ba chóir go bhfilleadh
Truemá cheadaítear réad inlíne a chur leis,Falsear shlí eile. Is éobjan tuismitheoir réad atá á chur in eagar nó ``None ``nuair a chuirtear tuismitheoir nua leis.
- InlineModelAdmin.has_change_permission(request, obj=None)Link to this definition
Ba chóir go bhfaighidh
Truea thabhairt ar ais má cheadaítear réad inlíne a chur in eagar,Falsear shlí eile. Is éobjan tuismitheoir réad atá á chur in eagar.
- InlineModelAdmin.has_delete_permission(request, obj=None)Link to this definition
Ba chóir go bhfilleadh
Truemá cheadaítear réad inlíne a scriosadh,Falsear shlí eile. Is éobjan tuismitheoir réad atá á chur in eagar.
Ag obair le samhail le dhá eochracha eachtracha nó níos mó don tsamhail thuismitheora céannaLink to this heading
Uaireanta is féidir níos mó ná eochair eachtrach amháin a bheith agat don tsamhail chéanna. Tóg an tsamhail seo mar shampla:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=128)
class Friendship(models.Model):
to_person = models.ForeignKey(
Person, on_delete=models.CASCADE, related_name="friends"
)
from_person = models.ForeignKey(
Person, on_delete=models.CASCADE, related_name="from_friends"
)
Más mian leat inlíne a thaispeáint ar na leathanaigh riaracháin ``Duine ``a chur leis /athraigh ní mór duit an eochair eachtrach a shainiú go sainráite ós rud é nach féidir leis sin a dhéanamh go huathoibríoch:
from django.contrib import admin
from myapp.models import Friendship, Person
class FriendshipInline(admin.TabularInline):
model = Friendship
fk_name = "to_person"
class PersonAdmin(admin.ModelAdmin):
inlines = [
FriendshipInline,
]
admin.site.register(Person, PersonAdmin)
Ag obair le go leor samhlachaLink to this heading
De réir réamhshocraithe, taispeánfar giuirléidí riaracháin le haghaidh caidrimh go leor ar cibé múnla ina bhfuil an tagairt iarbhír don: class: ~django.db.models.manyToManyField. Ag brath ar do shainmhíniú ModelAdmin`, beidh gach réimse go leor i do mhúnla ionadaíocht le HTML ``, caighdeánach, scagaire cothrománach nó ingearach, nó giuirléid raw_id_fields <select multiple>. Mar sin féin, is féidir inlíne a chur in ionad na giuirléidí seo.
Cuir i gcás go bhfuil na samhlacha seo a leanas againn:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=128)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, related_name="groups")
Más mian leat caidreamh go leor a thaispeáint ag baint úsáide as inlíne, is féidir leat é sin a dhéanamh trí réad inlineModelAdmin a shainiú don chaidreamh:
from django.contrib import admin
from myapp.models import Group
class MembershipInline(admin.TabularInline):
model = Group.members.through
class GroupAdmin(admin.ModelAdmin):
inlines = [
MembershipInline,
]
exclude = ["members"]
admin.site.register(Group, GroupAdmin)
Tá dhá ghné is fiú a thabhairt faoi deara sa sampla seo.
Ar dtús - tagairtí aicme MembershipInline ``Group.Members.Through ``. Is tagairt é an tréith ``trí ``don tsamhail a bhainistíonn an gaol go leor. Cruthaíonn Django an tsamhail seo go huathoibríoch nuair a shainmhíníonn tú réimse go leor.
Ar an dara dul síos, ní mór don Groupadmin` an réimse ``baill ``a eisiamh de láimh. Taispeánann Django giuirléid riaracháin do réimse go leor ar an tsamhail a shainmhíníonn an gaol (sa chás seo, ``Grúpa ``). Más mian leat samhail inlíne a úsáid chun an caidreamh go leor a léiriú, ní mór duit a rá le riarachán Django ná* an giuirléid seo a thaispeáint - ar shlí eile beidh dhá ghuirléid agat ar do leathanach riaracháin chun an gaol a bhainistiú.
Tabhair faoi deara nach spreagtar na comharthaí: data: ~django.db.models.signals.m2m_changed nuair a úsáidtear an teicníc seo. Tá sé seo toisc nach bhfuil ach samhail le dhá phríomhréimse eachtracha eachtrach seachas caidreamh go leor le go leor.
Ar gach bealach eile, tá an InlineModelAdmin` díreach mar an gcéanna le haon cheann eile. Is féidir leat an cuma a shaincheapadh ag baint úsáide as aon cheann de na gnáthairíonna ``ModelAdmin`.
Ag obair le samhlacha idirghabhála go leorLink to this heading
Nuair a shonraíonn tú samhail idirghabhála ag baint úsáide as an argóint ``through ``chuig a:class: ~django.db.models.manyToManyField, ní thaispeánfaidh an riarachán giuirléid de réir réamhshocraithe. Tá sé seo toisc go dteastaíonn níos mó faisnéise ó gach cás den tsamhail idirghabhálaí sin ná mar a d'fhéadfaí a thaispeáint i ngiuirléid amháin, agus beidh an leagan amach a theastaíonn le haghaidh giuirléidí iolracha
Mar sin féin, ba mhaith linn fós a bheith in ann an fhaisnéis sin a chur in eagar inlíne. Ar ámharaí an tsaoil, is féidir linn é seo a dhéanamh le samhlacha riaracháin inlíne. Cuir i gcás go bhfuil na samhlacha seo a leanas againn:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=128)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through="Membership")
class Membership(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
class Meta:
constraints = [
models.UniqueConstraint(
fields=["person", "group"], name="unique_person_group"
)
]
Is é an chéad chéim chun an tsamhail idirmheánach seo a thaispeáint sa riarachán ná rang inlíne a shainiú don tsamhail ``Ballraíocht ``:
class MembershipInline(admin.TabularInline):
model = Membership
extra = 1
Úsáideann an sampla seo na luachanna réamhshocraithe InlineModelAdmin don tsamhail ``Ballraíocht ``, agus cuireann sé teorainn leis na foirmeacha breise le ceann amháin. D'fhéadfaí é seo a shaincheapadh ag baint úsáide as aon cheann de na roghanna atá ar fáil do ranganna ``InlineModelAdmin`.
Anois cruthaigh tuairimí riaracháin do na samhlacha Person agus Grúpa:
class PersonAdmin(admin.ModelAdmin):
inlines = [MembershipInline]
class GroupAdmin(admin.ModelAdmin):
inlines = [MembershipInline]
Faoi dheireadh, cláraigh do mhúnlaí Person` agus ``Grúpa leis an suíomh riaracháin:
admin.site.register(Person, PersonAdmin)
admin.site.register(Group, GroupAdmin)
Anois tá do shuíomh riaracháin bunaithe chun rudaí Ballraíocht ``a chur in eagar inlíne ó na leathanaigh sonraí ``Duine nó Grúpa`.
Ag baint úsáide as caidreamh cineálach mar inlíneLink to this heading
Is féidir inlíne a úsáid le rudaí a bhaineann go ginearálta. Abair go bhfuil na samhlacha seo a leanas agat:
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
class Image(models.Model):
image = models.ImageField(upload_to="images")
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey("content_type", "object_id")
class Product(models.Model):
name = models.CharField(max_length=100)
Más mian leat eagarthóireacht agus cruthú sampla Image ar an Product` a cheadú, cuirte/athraigh tuairimí is féidir leat a úsáid:class: ~django.contrib.contentTypes.admin.GenericTabularInline nó:class: ~django.contrib.contentTypes.admin.GenericStackedInline (dá fho-aicme de:class: Django.Contrib.ContentTypes.Admin.GenericStackedInline Jango.Contrib.ContentTypes.Admin.GenericInlineModelAdmin`) arna sholáthar ar:mod: ~django.contrib.contenttypes.admin. Cuireann siad leagan amach amhairc táblaíocha agus cruachta i bhfeidhm do na foirmeacha a léiríonn na rudaí inlíne, faoi seach, díreach cosúil lena gcomhghleacaithe neamh Iompraíonn siad díreach cosúil le haon inlíne eile. I do admin.py` don aip sampla seo:
from django.contrib import admin
from django.contrib.contenttypes.admin import GenericTabularInline
from myapp.models import Image, Product
class ImageInline(GenericTabularInline):
model = Image
class ProductAdmin(admin.ModelAdmin):
inlines = [
ImageInline,
]
admin.site.register(Product, ProductAdmin)
Féach na:doc: contenttypes doiciméadach le haghaidh faisnéise níos sainiúla. </ref/contrib/contenttypes>
Bailíochtú saincheaptha a chur leis an riarachánLink to this heading
The admin uses ModelForm. To add custom validation,
provide your own ModelForm:
class ArticleForm(forms.ModelForm):
def clean_name(self):
# do something that validates your data
return self.cleaned_data["name"]
Then configure the ModelAdmin to use the form:
class ArticleAdmin(admin.ModelAdmin):
form = ArticleForm
Or configure an InlineModelAdmin to use the form:
class ArticleInline(admin.TabularInline):
model = Article
form = ArticleForm
It is important that you use a ModelForm; otherwise things can break. See
the forms documentation on custom validation and, more specifically, the
model form validation notes for more
information.
Teimpléid riaracháin forchoitiantaLink to this heading
Is féidir leat go leor de na teimpléid a úsáideann an modúl riaracháin chun leathanaigh éagsúla suíomh riaracháin a ghiniúint a shárú. Is féidir leat fiú cúpla ceann de na teimpléid seo a shárú le haghaidh aip ar leith, nó samhail ar leith.
Set up your project's admin template directoriesLink to this heading
Tá na comhaid teimpléad riaracháin suite san eolaire: :source: django/contrib/admin/templates/admin.
D'fhonn ceann amháin nó níos mó díobh a shárú, cruthaigh eolaire admin ``ar dtús in eolaire ``teimpléad do thionscadail. Is féidir é seo a bheith ar aon cheann de na heolairí a shonraigh tú sa roghna:setting: DIRS <TEMPLATES-DIRS>`den chúlcheann ``DjangoTemplates` sa socrúit:setting: TEMPLATES. Má tá an rogha ``'loaders'` shaincheaptha agat, bí cinnte go bhfuil ``django.template.loaders.filesystem.loader'` le feiceáil roimh ``django.template.loaders.app_directories.loader' ionas go bhfaighidh an córas luchtaithe teimpléid do theimpléid saincheaptha roimh iad siúd atá san áireamh la:mod: django.contrier' b.riarachán.
Laistigh den eolaire ``admin ``seo, cruthaigh fo-eolairí ainmnithe i ndiaidh d'aip. Laistigh de na foeolairí aip seo cruthaigh fo-eolairí ainmnithe i ndiaidh Tabhair faoi deara, go ndéanfaidh an aip riaracháin ainm an tsamhail beaga agus tú ag lorg an eolaire, mar sin déan cinnte go n-ainmníonn tú an eolaire i ngach líon beag má tá tú chun d'aip a reáchtáil ar chóras comhaid cás-íogair.
Chun teimpléad riaracháin d'aip ar leith a shárú, cóipeáil agus cuir in eagar an teimpléad ón eolair:source: django/contrib/admin/templates/admin, agus sábháil é i gceann de na heolairí a chruthaigh tú díreach.
Mar shampla, dá mba mhaith linn uirlis a chur leis an amharc liosta athraithe do na samhlacha go léir in aip darb ainm my_app, chóipeáil contrib/admin/templates/admin/change_list.html chuig eolaire templates/admin/my_app/ dár dtionscadal, agus déanfaimis aon athruithe riachtanacha.
Dá dteastaíonn uirlis a chur leis an amharc liosta athraithe amháin le haghaidh samhail shonrach darb ainm 'Page', déanfaimis an comhad céanna sin a chóipeáil chuig eolaire templates/admin/my_app/page dár dtionscadal.
Teimpléad riaracháin a athsholáthar vs. athsholátharLink to this heading
Mar gheall ar dhearadh modúlach na teimpléid riaracháin, de ghnáth ní gá ná moltar teimpléad iomlán a athsholáthar. Is fearr beagnach i gcónaí ach an chuid den teimpléad a chaithfidh tú a athrú a shárú.
Chun leanúint leis an sampla thuas, ba mhaith linn nasc nua a chur leis in aice leis an uirlis Stair ``don tsamhail ``Leathanach. Tar éis féachaint ar change_form.html socraímid nach gá dúinn ach an bloc object-tools-items ``a shárú. Dá bhrí sin seo ár ``change_form.html` nua:
{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}
{% block object-tools-items %}
<li>
<a href="{% url opts|admin_urlname:'history' original.pk|admin_urlquote %}" class="historylink">{% translate "History" %}</a>
</li>
<li>
<a href="mylink/" class="historylink">My Link</a>
</li>
{% if has_absolute_url %}
<li>
<a href="{% url 'admin:view_on_site' content_type_id original.pk %}" class="viewsitelink">{% translate "View on site" %}</a>
</li>
{% endif %}
{% endblock %}
Agus sin é! Dá gcuirfimid an comhad seo san eolaire templates/admin/my_app, bheadh ár nasc le feiceáil ar an bhfoirm athraithe do gach samhail laistigh de my_app.
Teimpléid a d'fhéadfaí a shárú in aghaidh an aip nó an tsamhailLink to this heading
Ní féidir gach teimpléad i `contrib/admin/templates/admin ``a shárú in aghaidh an aip nó in aghaidh an tsamhail. Is féidir leis an méid seo a leanas:
Actions.htmlapp_index.htmlathraithe_foirm.htmlathraithe_foirm_object_tools.htmlliosta_athraithe.htmlathraithe_liosta_object_tools.htmlathraí_liosta_results.htmldate_hierarchy.htmldelete_confirmation.htmlObject_Histor.htmlpagination.htmlpopup_response.htmlréamh-phoilds_js.htmlfoirme_cuardach.html``submit_line.html ``
Maidir leis na teimpléid sin nach féidir iad a shárú ar an mbealach seo, féadfaidh tú iad a shárú do do thionscadal iomlán tríd an leagan nua a chur i d'eolaire ``teimpléad/admin ``. Tá sé seo úsáideach go háirithe chun leathanach saincheaptha 404 agus 500 a chruthú.
Teimpléid fréamh agus logála isteachLink to this heading
Más mian leat na teimpléid innéacs, logáil isteach nó logáil amach a athrú, is fearr duit do shampla Adminsite féin a chruthú (féach thíos), agus airíonna: attr: Adminsite.index_Template, :attr: Adminsite.login_Template nó: attr: Adminsite.logout_Template a athrú.
Tacaíocht téamaíLink to this heading
Úsáideann an riarachán athróga CSS chun dathanna agus clónna a shainiú. Ligeann sé seo téamaí a athrú gan go leor rialacha CSS aonair a shárú. Mar shampla, más fearr leat corcra in ionad gorm d'fhéadfá teimpléad admin/base.html a chur le do thionscadal:
{% extends 'admin/base.html' %}
{% block extrastyle %}{{ block.super }}
<style>
html[data-theme="light"], :root {
--primary: #9774d5;
--secondary: #785cab;
--link-fg: #7c449b;
--link-selected-fg: #8f5bb2;
}
</style>
{% endblock %}
Sainmhínítear liosta na n-athróg CSS ag:source: django/contrib/admin/static/admin/css/base.css.
Sainmhínítear athróga mód dorcha, ag meas an cheist meán prefers-color-scheme, a:source: django/contrib/admin/static/admin/css/dark_mode.css. Tá sé seo nasctha leis an doiciméad i ``{% block dark-mode-vars%} `.
extrabody blockLink to this heading
You can add custom HTML, JavaScript, or other content to appear just before the
closing </body> tag of templates that extend admin/base.html by
extending the extrabody block. For example, if you want an alert to appear
on page load you could add a admin/base.html template override to your
project:
{% extends 'admin/base.html' %}
{% block extrabody %}
{{ block.super }}
<script>
document.addEventListener('DOMContentLoaded', function() {
window.alert('Welcome!');
});
</script>
{% endblock extrabody %}
rudaí Admin SiteLink to this heading
- class AdminSite(name='admin')Link to this definition
Léirítear suíomh riaracháin Django le sampla de
django.contrib.admin.sites.adminSite; de réir réamhshocraithe, cruthaítear sampla den rang seo mardjango.contrib.admin.siteagus is féidir leat do mhúnlaí agus cásanna ``ModelAdmin` a chlárú leis.<overriding-default-admin-site>Más mian leat an suíomh riaracháin réamhshocraithe a shaincheapadh, is féidir leat: ref: `é a shárú `.
Agus sampla de ``Adminsite' á thógáil agat, is féidir leat ainm sampla uathúil a sholáthar ag baint úsáide as an argóint ``ainm ``don tógálaí. <admin-reverse-urls>Úsáidtear an t-ainm sampla seo chun an cás a aithint, go háirithe nuair:ref: URLanna riaracháin a aisiompú `. Mura gcuirtear aon ainm sampla ar fáil, úsáidfear ainm sampla réamhshocraithe de ``admin `. Féach: ref: customizing-adminsite le haghaidh sampla den aicme: class: adminSite a shaincheapadh.
- django.contrib.admin.sites.all_sitesLink to this definition
A: Class: ~ WeakRef.WeakSet tá gach cás láithreáin riaracháin.
AdminSite tréitheLink to this heading
Is féidir le teimpléid teimpléid riaracháin bonn a shárú nó a leathnú mar a thuairiscítear in:ref: admin-overriding-temples.
- AdminSite.site_headerLink to this definition
An téacs le cur ag barr gach leathanach riaracháin, mar
<div>(teaghrán). De réir réamhshocraithe, is é seo “riarachán Django”.
- AdminSite.site_titleLink to this definition
An téacs le cur ag deireadh gach leathanach riaracháin <title>```(teaghrán). De réir réamhshocraithe, is é seo “Riarachán láithreáin Django”.
- AdminSite.site_urlLink to this definition
An URL don nasc “Féach ar an suíomh” ag barr gach leathanach riaracháin. De réir réamhshocraithe, is é
site_url ``/``. Socraigh é go ``None ``chun an nasc a bhaint.Maidir le suíomhanna atá ag rith ar fho-chosán, seiceálann an modh:meth: each_context an bhfuil request.meta ['SCRIPT_NAME'] ``socraithe sa iarraidh reatha agus úsáideann sé an luach sin mura bhfuil ``site_url` socraithe ar rud éigin seachas
/.
- AdminSite.index_titleLink to this definition
An téacs le cur ag barr an leathanaigh innéacs riaracháin (sreang). De réir réamhshocraithe, is é seo “Riarachán láithreáin”.
- AdminSite.index_templateLink to this definition
Conair chuig teimpléad saincheaptha a úsáidfidh príomh-amharc innéacs an láithreáin riaracháin.
- AdminSite.app_index_templateLink to this definition
Conair chuig teimpléad saincheaptha a úsáidfidh amharc innéacs aip an láithreáin riaracháin.
- AdminSite.empty_value_displayLink to this definition
An teaghrán le húsáid chun luachanna folmha a thaispeáint i liosta athraithe an láithreáin riaracháin. Réamhshocraithe go sraitheanna. Is féidir an luach a shárú freisin ar bhonn
ModelAdminagus ar réimse saincheaptha laistigh deModelAdmintrí thréithempty_value_displaya shocrú ar an réimse. Féach: attr: ModelAdmin.empty_value_display le haghaidh samplaí.
Luach boolean a chinneann an dtaispeánfar an barra taobh nascleanúna ar scáileáin níos mó. De réir réamhshocraithe, tá sé socraithe go
True.
- AdminSite.final_catch_all_viewLink to this definition
Luach boolean a chinneann an gcuirfear dearcadh deiridh catch-all a chur leis an riarachán a atreoraíonn úsáideoirí neamhfhíordheimhnithe chuig an leathanach logála isteach. De réir réamhshocraithe, tá sé socraithe go
True.
- AdminSite.login_templateLink to this definition
Conair chuig teimpléad saincheaptha a úsáidfidh amharc logála isteach an láithreáin riaracháin.
- AdminSite.login_formLink to this definition
Fo-aicme de:class: ~django.contrib.auth.forms.AuthenticationForm a úsáidfidh amharc logála isteach an láithreáin riaracháin.
- AdminSite.logout_templateLink to this definition
Conair chuig teimpléad saincheaptha a úsáidfidh amharc logáil amach an láithreáin riaracháin.
- AdminSite.password_change_formLink to this definition
-
Subclass of
PasswordChangeFormthat will be used by the admin site password change view.
- AdminSite.password_change_templateLink to this definition
Conair chuig teimpléad saincheaptha a úsáidfidh amharc athraithe pasfhocal an láithreáin riaracháin.
- AdminSite.password_change_done_templateLink to this definition
Conair chuig teimpléad saincheaptha a úsáidfidh athrú pasfhocal an láithreáin riaracháin amharc déanta.
Modhanna AdminsiteLink to this heading
- AdminSite.each_context(request)Link to this definition
Tugann foclóir athróg ar ais le cur i gcomhthéacs an teimpléid do gach leathanach ar an suíomh riaracháin.
Cuimsíonn sé na hathróga agus na luachanna seo a leanas de réir
site_header: :attr: Adminsite.site_headersite_title: :attr: Adminsite.site_titlesite_url: :attr: Adminsite.site_urlhas_ceadúna: :meth: adminsite.has_ceadúnaavailable_apps: liosta d'iarratais óna:doc: clárú iarrataich atá ar fáil don úsáideoir reatha </ref/applications/>. Is é gach iontráil sa liosta ina dhiaidh sin a léiríonn feidhmchlár leis na heochracha seo a leanas:app_label: an lipéad iarrataishas_module_perms: boolean a léiríonn an bhfuil leathanach innéacs an mhodúil ceadaithe don úsáideoir reatha a thaispeáint agus rochtain a fháil ar leathanach innéacs an mhodúil``samhlacha ``: liosta de na samhlacha atá ar fáil san iarratas
Is dict é gach samhail leis na heochracha seo a leanas:
is_popup: cibé an bhfuil an leathanach reatha ar taispeáint i bhfuinneog aníosis_nav_sidebar_enabled: :attr: Adminsite.enable_nav_sidebarlog_entries: :meth: .adminsite.get_log_entries
- AdminSite.get_app_list(request, app_label=None)Link to this definition
Tugann liosta iarratais ar ais ó:doc: clár iarrataich atá ar fáil don úsáideoir </ref/applications/> reatha. Is féidir leat argóint
app_labela rith go roghnach chun sonraí a fháil d'aip amháin. Is foclóir é gach iontráil sa liosta a léiríonn feidhmchlár leis na heochracha seo a leanas:app_label: an lipéad iarrataishas_module_perms: boolean a léiríonn an bhfuil leathanach innéacs an mhodúil ceadaithe don úsáideoir reatha a thaispeáint agus rochtain a fháil ar leathanach innéacs an mhodúil``samhlacha ``: liosta de na samhlacha atá ar fáil san iarratas
Is foclóir é gach samhail leis na heochracha seo a leanas:
object_name: ainm aicme an tsamhailperms: rianúdictceadanna ``add`, athraithe`, scrios`, agusféachadmin_url: URL liosta athraithe riaracháin don tsamhailadd_url: URL riaracháin chun samhail nua a chur leis
Déantar liostaí iarratais agus samhlacha a shórtáil in ord aibítre de réir a n-ainmneacha. Is féidir leat an modh seo a athrú chun an t-ordú réamhshocraithe a athrú ar an leathanach innéacs riaracháin.
- AdminSite.has_permission(request)Link to this definition
Tugann
Truear ais má tá cead ag an úsáideoir don HttpRequest` a thugtar leathanach amháin ar a laghad a fheiceáil ar an suíomh riaracháin. <django.contrib.auth.models.User.is_active><django.contrib.auth.models.User.is_staff>Réamhshocraithe chun a cheangal go mbeadh an bheirt: attr: User.is_Active `agus: attr: `User.is_staff a bheithTrue.
- AdminSite.register(model_or_iterable, admin_class=None, **options)Link to this definition
Cláraíonn sé an rang samhail tugtha (nó athraitheach ranganna) leis an admin_class` a thugtar. Réamhshocraithe
admin_classto:class: ~django.contrib.admin.modelAdmin (na roghanna riaracháin réamhshocraithe). Má thugtar argóintí eochairfhocal - m.sh.list_display-- cuirfear i bhfeidhm iad mar roghanna ar an rang riaracháin.Reass:class: ~django.core.exceptions.imProperlyConfigured má tá samhail teib. agus
django.contrib.admin.exceptions.alreadyRegisteredmá tá samhail cláraithe cheana féin.
- AdminSite.unregister(model_or_iterable)Link to this definition
Díchláraigh an rang samhail a thugtar (nó athraitheach ranganna).
Ardaíonn sé
django.contrib.admin.exceptions.notRegisteredmura bhfuil samhail cláraithe cheana féin.
- AdminSite.get_model_admin(model)Link to this definition
Tugann sé rang riaracháin ar ais don rang samhail ar leith. Ardaíonn sé
django.contrib.admin.exceptions.notRegisteredmura bhfuil samhail cláraithe.
- AdminSite.get_log_entries(request)Link to this definition
Tugann sé tacar fiosrúcháin ar fáil do na cásanna gaolmha:class: ~django.contrib.admin.models.logEntry, a thaispeántar ar leathanach innéacs an láithreáin. Is féidir an modh seo a shárú chun na hiontrálacha logála a scagadh de réir critéir eile.
Cásanna AdminSite a chur isteach i do URLConfLink to this heading
The last step in setting up the Django admin is to hook your AdminSite
instance into your URLconf. Do this by pointing a given URL at the
AdminSite.urls method. It is not necessary to use
include().
Sa sampla seo, cláraímid an sampla réamhshocraithe adminSite django.contrib.admin.site ag an URL /admin/:
# urls.py
from django.contrib import admin
from django.urls import path
urlpatterns = [
path("admin/", admin.site.urls),
]
Saincheapadh an ranga:class: adminSiteLink to this heading
Más mian leat do shuíomh riaracháin féin a bhunú le hiompar saincheaptha, tá saor ort fo-aicme Adminsite' agus aon rud is mian leat a shárú nó a chur leis. Ansin, cruthaigh sampla de do fho-aicme ``AdminSite (ar an mbealach céanna a chuirfeá aon rang Python eile) agus cláraigh do mhúnlaí agus fo-aicmí ModelAdmin leis in ionad leis an suíomh réamhshocraithe. Faoi dheireadh, nuashonraigh: file: myproject/urls.py chun tagairt a dhéanamh d'fho-aicme: class: adminSite.
myapp/admin.pyfrom django.contrib import admin
from .models import MyModel
class MyAdminSite(admin.AdminSite):
site_header = "Monty Python administration"
admin_site = MyAdminSite(name="myadmin")
admin_site.register(MyModel)
myproject/urls.pyfrom django.urls import path
from myapp.admin import admin_site
urlpatterns = [
path("myadmin/", admin_site.urls),
]
Tabhair faoi deara go mb'fhéidir nach dteastaíonn uait modúil admin ``uathoibríoch agus tú ag úsáid do shampla ``adminSite féin ós rud é gur dócha go mbeidh tú ag iompórtáil na modúil admin gach aip in aghaidh an aip i do mhodúl myproject.admin ``. Ciallaíonn sé seo go gcaithfidh tú ``django.contrib.admin.apps.simpleAdminConfig'` a chur in ionad ```django.contrib.admin' i do shuíomh: INSTALLED_APPS.
Sárú ar an suíomh riaracháin réamhshocraitheLink to this heading
Is féidir leat an réamhshocraithe django.contrib.admin.site a shárú trí:attr: ~.simpleAdminConfig.default_site tréith saincheaptha AppConfig a shocrú chuig an gcosán allmhairithe poncair de fho-aicme AdminSite nó inghlaoch a thugann sampla láithreáin.
myproject/admin.pyfrom django.contrib import admin
class MyAdminSite(admin.AdminSite): ...
myproject/apps.pyfrom django.contrib.admin.apps import AdminConfig
class MyAdminConfig(AdminConfig):
default_site = "myproject.admin.MyAdminSite"
myproject/settings.pyINSTALLED_APPS = [
# ...
"myproject.apps.MyAdminConfig", # replaces 'django.contrib.admin'
# ...
]
Láithreáin riaracháin iolracha sa URLConf céannaLink to this heading
Is féidir leat cásanna iolracha den suíomh riaracháin a chruthú ar an suíomh Gréasáin céanna faoi thiomáint Django. Cruthaigh cásanna iolracha de Adminsite agus cuir gach ceann acu ag URL difriúil.
Sa sampla seo, cuimsíonn na URLanna /basic-admin/ agus /advanced-admin/ leaganacha ar leithligh den suíomh riaracháin -- ag baint úsáide as na cásanna adminSite myproject.admin.basic_site agus ``myproject.admin.advanced_`site`, faoi seach:
# urls.py
from django.urls import path
from myproject.admin import advanced_site, basic_site
urlpatterns = [
path("basic-admin/", basic_site.urls),
path("advanced-admin/", advanced_site.urls),
]
Tógann cásanna Adminsite argóint amháin dá dtógálaí, a n-ainm, ar féidir a bheith ina rud ar bith is mian leat. <admin-reverse-urls>Is é an argóint seo an réimír d'ainmneacha URL chun críocha:ref: iad a aisiompú `. Níl sé seo riachtanach ach má tá níos mó ná `Adminsite amháin á úsáid agat.
Tuairimí a chur le suíomhanna riaracháinLink to this heading
Just like ModelAdmin, AdminSite provides a
get_urls() method
that can be overridden to define additional views for the site. To add
a new view to your admin site, extend the base
get_urls() method to include
a pattern for your new view.
Gné athshocraithe pasfhocal a chur leisLink to this heading
Is féidir leat gné athshocraithe pasfhocal a chur leis an suíomh riaracháin trí chúpla líne a chur le do URLConf. Go sonrach, cuir na ceithre phatrún seo leis:
from django.contrib import admin
from django.contrib.auth import views as auth_views
path(
"admin/password_reset/",
auth_views.PasswordResetView.as_view(
extra_context={"site_header": admin.site.site_header}
),
name="admin_password_reset",
),
path(
"admin/password_reset/done/",
auth_views.PasswordResetDoneView.as_view(
extra_context={"site_header": admin.site.site_header}
),
name="password_reset_done",
),
path(
"reset/<uidb64>/<token>/",
auth_views.PasswordResetConfirmView.as_view(
extra_context={"site_header": admin.site.site_header}
),
name="password_reset_confirm",
),
path(
"reset/done/",
auth_views.PasswordResetCompleteView.as_view(
extra_context={"site_header": admin.site.site_header}
),
name="password_reset_complete",
),
(Glacann sé seo leis gur chuir tú an riarachán leis ag admin/` agus éilíonn tú go gcuirfidh tú na URLanna ag tosú le ^admin/ roimh an líne a chuimsíonn an aip riaracháin féin).
Beidh an URL ainmnithe admin_password_reset mar thoradh ar “dearmad ar do phasfhocal?” nasc le feiceáil ar an leathanach logála isteach riaracháin réamhshocraithe faoin mbosca pasfhocal.
Rudaí LogentryLink to this heading
- class models.LogEntryLink to this definition
Rianaíonn an rang `LogEntry ``breiseanna, athruithe agus scriosadh rudaí a dhéantar tríd an gcomhéadan riaracháin.
Logentry tréitheLink to this heading
- LogEntry.action_timeLink to this definition
Dáta agus am an ghníomhaíochta.
- LogEntry.userLink to this definition
An t-úsáideoir (an:setting: AUTH_USER_MODEL) a rinne an gníomh.
- LogEntry.content_typeLink to this definition
An: Class: ~django.contrib.contentTypes.Models.ContentType an réad modhnaithe.
- LogEntry.object_idLink to this definition
Léiriú téacsúil phríomh-eochair an réad modhnaithe.
- LogEntry.object_reprLink to this definition
- LogEntry.action_flagLink to this definition
An cineál gníomhaíochta logáilte:
BREISE, ATHRAÍ`, SCRIOSADH `.Mar shampla, chun liosta de na breiseanna go léir a dhéantar tríd an riarachán a fháil:
from django.contrib.admin.models import ADDITION, LogEntry LogEntry.objects.filter(action_flag=ADDITION)
- LogEntry.change_messageLink to this definition
An cur síos mionsonraithe ar an modhnú. I gcás eagarthóireachta, mar shampla, tá liosta de na réimsí eagarthóireachta sa teachtaireacht. Formálaíonn suíomh riaracháin Django an t-ábhar seo mar struchtúr JSON, ionas gur féidir le: meth: get_change_message teachtaireacht a aistrítear sa teanga úsáideora reatha a athchóiriú. D'fhéadfadh cód saincheaptha é seo a shocrú mar shreang simplí áfach. Moltar duit an modh: meth: get_change_message a úsáid chun an luach seo a aisghabháil in ionad rochtain a fháil go díreach air.
Modhanna LogentryLink to this heading
- LogEntry.get_edited_object()Link to this definition
Aicearra a thugann an réad tagartha ar ais.
- LogEntry.get_change_message()Link to this definition
Formáidí agus aistriúcháin:attr: change_message isteach sa teanga úsáideora reatha. Taispeánfar teachtaireachtaí a cruthaíodh roimh Django 1.10 i gcónaí sa teanga ina raibh siad logáilte.
URLanna riaracháin a aisiompúLink to this heading
<naming-url-patterns>Nuair a imscartar an:class: AdminSite, is féidir na tuairimí a sholáthraíonn an láithreán sin inrochtana ag baint úsáide as django's:ref: córas aisiompthe URL.
Soláthraíonn an:class: adminSite na patrúin URL ainmnithe seo a leanas:
Leathanach |
Ainm URL |
Paraiméadair |
|---|---|---|
Innéacs |
|
|
Logáil isteach |
``Logáil isteach `` |
|
Logáil amach |
``logáil isteach `` |
|
Athrú focal faire |
|
|
Athrú pasfhocal déanta |
|
|
i18n JavaScript |
|
|
Leathanach innéacs iarratais |
|
|
Atreorú chuig leathanach an réada |
|
|
Soláthraíonn gach cás: Class: ModelAdmin sraith breise URLanna ainmnithe:
Leathanach |
Ainm URL |
Paraiméadair |
|---|---|---|
Liosta athraithe |
|
|
Cuir le |
|
|
Stair |
|
|
Cealaigh |
|
|
Athraigh |
|
|
Soláthraíonn an UserAdmin URL ainmnithe:
Leathanach |
Ainm URL |
Paraiméadair |
|---|---|---|
Athrú focal faire |
|
``ID úsáideora `` |
Tá na URLanna ainmnithe seo cláraithe leis an spás ainmneacha feidhmchláir ``admin ``, agus le spás ainmneacha sampla a fhreagraíonn d'ainm an tSuímh.
Mar sin - dá dteastaíonn uait tagairt a fháil don radharc Athraigh do réad áirithe Roghna (ón bhfeidhmchlár poballaí) sa riarachán réamhshocraithe, ghlaoifeá ar:
>>> from django.urls import reverse
>>> c = Choice.objects.get(...)
>>> change_url = reverse("admin:polls_choice_change", args=(c.id,))
Gheobhaidh sé seo an chéad shampla cláraithe den fheidhmchlár riaracháin (cibé ainm an sampla), agus réiteoidh sé an dearcadh maidir le cásanna Poll.Choice a athrú sa chás sin.
Más mian leat URL a aimsiú i gcás riaracháin ar leith, tabhair ainm an chás sin mar leid current_app don ghlao droim. Mar shampla, dá dteastaíonn uait go sonrach an dearcadh riaracháin ón gcás riaracháin darb ainm ``sain`, bheadh ort glaoch ar:
>>> change_url = reverse("admin:polls_choice_change", args=(c.id,), current_app="custom")
<topics-http-reversing-url-namespaces>Le haghaidh tuilleadh sonraí, féach an doiciméadú ar:ref: `URLanna spaced ainmneacha a aisiompú `.
Chun na urls riaracháin a aisiompú níos éasca i dteimpléid, soláthraíonn Django scagaire admin_urlname a ghlacann gníomh mar argóint:
{% load admin_urls %}
<a href="{% url opts|admin_urlname:'add' %}">Add user</a>
<a href="{% url opts|admin_urlname:'delete' user.pk %}">Delete this user</a>
Meaitníonn an gníomh sna samplaí thuas leis an gcuid deireanach de na hainmneacha URL le haghaidh cásanna: class: ModelAdmin a thuairiscítear thuas. Is féidir leis an athróg opts a bheith ina rud ar bith a bhfuil tréithe app_label agus model_name aige agus is gnách go soláthraíonn na tuairimí riaracháin don tsamhail reatha.
An maisitheoir taispeánLink to this heading
- display(*, boolean=None, ordering=None, description=None, empty_value=None)Link to this definition
Is féidir an maisitheoir seo a úsáid chun tréithe sonracha a shocrú ar fheidhmeanna taispeána saincheaptha is féidir a úsáid le:attr: ~django.contrib.admin.modeladmin.list_display nó:attr: ~django.contrib.admin.modelAdmin.ReadOnly_Fields:
@admin.display( boolean=True, ordering="-publish_date", description="Is Published?", ) def is_published(self, obj): return obj.publish_date is not NoneTá sé seo comhionann le roinnt tréithe (leis na hainmneacha bunaidh, níos faide) a shocrú go díreach ar an bhfeidhm:
def is_published(self, obj): return obj.publish_date is not None is_published.boolean = True is_published.admin_order_field = "-publish_date" is_published.short_description = "Is Published?"Tabhair faoi deara freisin go léarscálann paraiméadar maisitheora
empty_valueleis an tréith empty_value_display` a shanntar go díreach don fheidhm. Ní féidir é a úsáid i gcomhar leboolean- tá siad frithpháirteach.Níl sé éigeantach an maisitheoir seo a úsáid chun feidhm taispeána a dhéanamh, ach d'fhéadfadh sé a bheith úsáideach é a úsáid gan argóintí mar mharcóir i do fhoinse chun cuspóir na feidhme a aithint:
@admin.display def published_year(self, obj): return obj.publish_date.yearSa chás seo ní chuirfidh sé aon tréithe leis an bhfeidhm.
An maisitheoir staff_member_requredLink to this heading
- staff_member_required(redirect_field_name='next', login_url='admin:login')Link to this definition
Úsáidtear an maisitheoir seo ar na tuairimí riaracháin a éilíonn údarú. Beidh an t-iompar seo a leanas ag radharc maisithe leis an bhfeidhm seo:
Má tá an t-úsáideoir logáilte isteach, gur ball foirne é (
user.is_staff=true), agus má tá sé gníomhach (user.is_active=true), déan an radharc a fhorghníomhú de ghnáth.Seachas sin, atreorófar an t-iarratas chuig an URL a shonraítear leis an bparaiméadar
login_url ``, leis an gcosán a iarrtar ar dtús in athróg teaghrán fiosrúcháin a shonraítear le ``redirect_field_name. Mar shampla:/admin/login/? next =/admin /polls/ceist/3/.
Úsáid sampla:
from django.contrib.admin.views.decorators import staff_member_required @staff_member_required def my_view(request): ...