Conas teimpléid a shárúLink to this heading

I do thionscadal, b'fhéidir gur mhaith leat teimpléad a shárú in iarratas Django eile, cibé acu is feidhmchlár tríú páirtí é nó feidhmchlár contrib mar ``django.contrib.admin ``. Is féidir leat athshlánú teimpléid a chur in eolaire teimpléid do thionscadail nó in eolaire teimpléid feidhmchláir.

Má tá eolairí teimpléid aipeanna agus tionscadail agat ina bhfuil foriompaithe araon acu, déanfaidh an lódóir teimpléad réamhshocraithe Django iarracht an teimpléad a luchtú ón eolaire leibhéal tionscadail <TEMPLATES-APP_DIRS>Is é sin le rá, cuardaítear :setting: DIRS <TEMPLATES-DIRS>`roimhe sean:setting: `APP_DIRS.

Sárú ó eolaire teimpléid an tionscadailLink to this heading

Ar dtús, déanfaimid iniúchadh ar theimpléid sháraitheacha trí theimpléid athsholáthair a chruthú in eolaire teimpléad do thionscadail.

Ligean le rá go bhfuil tú ag iarraidh na teimpléid d'fheidhmchlár tríú páirtí ar a dtugtar blog ``a sholáthraíonn na teimpléid ``blog/post.html agus blog/list.html, a sholáthraíonn na teimpléid blog/post.html. Bheadh cuma na socruithe ábhartha do thionscadal seo a leanas:

Code
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

INSTALLED_APPS = [
    ...,
    "blog",
    ...,
]

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [BASE_DIR / "templates"],
        "APP_DIRS": True,
        # ...
    },
]

Beidh an socrú: SETTING: TEMPLATES agus BASE_DIR ann cheana féin má chruthaigh tú do thionscadal ag baint úsáide as an teimpléad réamhshocraithe tionscadail. <TEMPLATES-DIRS>Is é an socrú is gá a mhodhnú ná: socrú: `DIRS `.

Glacann na socruithe seo leis go bhfuil eolaire teimpléad agat i bhfréamh do thionscadail. Chun na teimpléid don aip blog ``a shárú, cruthaigh fillteán san eolaire ``teimpléid`, agus cuir na comhaid teimpléad leis an bhfillteán sin:

None
templates/
    blog/
        list.html
        post.html

Féachann an lódóir teimpléid ar dtús teimpléid san eolaire ``DIRS`. Nuair a iarrann na tuairimí san aip blog ``na teimpléid `blog/post.html agus ``blog/list.html`, cuirfidh an lódóir na comhaid a chruthaigh tú díreach ar ais.

Sárú ó eolaire teimpléad aipLink to this heading

Ós rud é go bhfuil teimpléid thart agat atá suite taobh amuigh de cheann de na feidhmchláir do thionscadail, tá sé níos coitianta an chéad mhodh a úsáid agus forlíonta teimpléid a chur i bhfillteán teimpléid tionscadail. Más fearr leat, áfach, is féidir na foriomláin a chur in eolaire teimpléad aip freisin.

Ar dtús, déan cinnte go bhfuil do shocruithe teimpléid á seiceáil taobh istigh de na heolairí aipeanna:

Code
TEMPLATES = [
    {
        # ...
        "APP_DIRS": True,
        # ...
    },
]

Más mian leat na teimpléid a shárú in aip ar a dtugtar myapp` agus tugtar blog/list.html` agus blog/post.html ar na teimpléid atá le frithsheasmhú, ansin beidh cuma ar do struchtúr eolaire:

None
myapp/
    templates/
        blog/
            list.html
            post.html

Le: Socrú: APP_DIRS <TEMPLATES-APP_DIRS>`socraithe go ``True`, féachfaidh an lódóir teimpléid in eolaire teimpléid an aip agus gheobhaidh sé na teimpléid.

Teimpléad athsháraithe a leathnúLink to this heading

Agus do luchtaitheoirí teimpléad cumraithe, is féidir leat teimpléad a leathnú ag baint úsáide as an gclib te <extends>impléad:ttag: {% extens%} agus é a shárú ag an am céanna. Féadann sé seo ligean duit saincheaptha beaga a dhéanamh gan gá duit an teimpléad iomlán a athchur i bhfeidhm.

Mar shampla, is féidir leat an teicníc seo a úsáid chun lógó saincheaptha a chur leis an teimpléad admin/base_site.html:

teimpléid/admin/base_site.html
Django template
 {% extends "admin/base_site.html" %}

 {% block branding %}
   <img src="link/to/logo.png" alt="logo">
   {{ block.super }}
 {% endblock %}

Príomhphointí le tabhairt faoi deara:

  • Cruthaíonn an sampla comhad ag templates/admin/base_site.html a úsáideann an eolaire teimpléid ``leibhéal tionscadail cumraithe chun `admin/base_site.html a shárú.

  • Leathnaíonn an teimpléad nua admin/base_site.html, arb é an teimpléad céanna atá á athshealbhú.

  • Cuireann an teimpléad in ionad an bhloc branding, ag cur lógó saincheaptha leis, agus block.super` á úsáid chun an t-ábhar roimhe seo a choinneáil.

  • Tá an chuid eile den teimpléad gan athrú ó admin/base_site.html`.

Oibríonn an teicníc seo toisc nach ndéanann an lódóir teimpléad a mheas ar an teimpléad athshlánaithe atá luchtaithe cheana féin (ag templates/admin/base_site.html`) agus an chlib extenses ``á réiteach. In éineacht le `block.super is teicníc cumhachtach é chun saincheaptha beaga a dhéanamh.