Django-overextends er en Django genanvendelig app giver den overextends skabelon tag, en drop-in erstatning for Djangos udvider tag, som giver dig mulighed for at bruge cirkulære skabelon arv.
Den primære anvendelse-case for overextends er at samtidig tilsidesætte og udvide skabeloner fra andre genanvendelige apps, i din egen Django projekt.
Eksempel
Overvej følgende indstillinger modul og skabeloner, med apps APP1 og APP2 bundtet i projektet, for eksempel skyld:
# Settings.py
INSTALLED_APPS = (
& Nbsp; "APP1",
& Nbsp; "APP2",
& Nbsp; "overextends",
)
TEMPLATE_LOADERS = (
& Nbsp; "django.template.loaders.filesystem.Loader",
& Nbsp; "django.template.loaders.app_directories.Loader",
)
PROJECT_ROOT = os.path.dirname (os.path.abspath (__ file__))
TEMPLATE_DIRS = (os.path.join (PROJECT_ROOT, "skabeloner"),)
Titel
{% Blok main%}
Et afsnit i APP1
{% Enblock%}
{% Overextends "sider / side.html"%}
{% Blok main%}
Et afsnit i APP2, der ønsker at være på toppen af APP1 vigtigste blok
{{Block.super}}
{% Enblock%}
{% Overextends "sider / side.html"%}
{% Blok main%}
{{Block.super}}
Et afsnit i projektets skabelon mappe, under de andre store blokke
{% Enblock%}
Den resulterende HTML gengives når sider / side.html blev indlæst ville være:
Titel
Et afsnit i APP2, der ønsker at være på toppen af APP1 vigtigste blok
Et afsnit i APP1
Et afsnit i projektets skabelon mappe, under de andre store blokke
Copyright 2012
For en detaljeret analyse af, hvorfor du ville bruge denne metode, hvordan det fungerer, og alternative metoder, læse min første blog-indlæg: Circular Skabelon Inheritance for Django.
Installation
Den nemmeste måde at installere Django-overextends er direkte fra PyPi hjælp pip ved at køre følgende kommando:
& Nbsp; pip installere -u Django-overextends
Ellers kan du hente Django-overextends og installere det direkte fra kilden:
& Nbsp; python setup.py installere
Projekt Konfiguration
Når det er installeret, kan du indstille dit projekt til at bruge Django-overextends ved at tilføje overextends app til INSTALLED_APPS i dit projekt indstillinger modul:
INSTALLED_APPS = (
& Nbsp; # ... andre apps her ...
& Nbsp; "overextends«,
)
Bemærk, at mens udvider tag leveres af pakkens overextends.templatetags.overextends_tags, det er unødvendigt at bruge {% belastning overextends_tags%} i dine skabeloner. Ligesom udvider tag, skal overextends være den første tag i din skabelon, så det automatisk føjes til Django indbyggede skabelon tags, hvilket fjerner behovet for at indlæse dets tag bibliotek i hver skabelon.
Krav :
- Python
- Django
Kommentarer ikke fundet