An aip flatpagesLink to this heading

Tagann Django le feidhmchlár roghnach “flatpages”. Ligeann sé duit ábhar HTML “comhréidh” a stóráil i mbunachar sonraí agus láimhseálann sé an bhainistíocht duit trí chomhéadan riaracháin Django agus API Python.

Is réad é leathanach cothrom le URL, teideal agus ábhar. Úsáid é le haghaidh leathanaigh aonuaire, cásanna speisialta, mar shampla leathanaigh “Maidir” nó “Beartas Príobháideachta”, ar mhaith leat a stóráil i mbunachar sonraí ach nach dteastaíonn uait feidhmchlár saincheaptha Django a fhorbairt dóibh.

Is féidir le leathanach cothrom teimpléad saincheaptha nó teimpléad réamhshocraithe ar fud an chórais a úsáid. Is féidir leis a bheith bainteach le suíomh amháin, nó iolracha.

Féadfar an réimse ábhair a fhágáil bán go roghnach más fearr leat d'ábhar a chur i dteimpléad saincheaptha.

SuiteáilLink to this heading

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

  1. Suiteáil an creat:mod: sites `trí ``<django.contrib.sites>django.contrib.sites' a chur le do shuíomh: INSTALLED_APPS, mura bhfuil sé ann cheana féin.

    Also make sure you've correctly set SITE_ID to the ID of the site the settings file represents. This will usually be 1 (i.e. SITE_ID = 1), but if you're using the sites framework to manage multiple sites, it could be the ID of a different site.

  2. Cuir ``django.contrib.flatpages'` le do shocrú: INSTALLED_APPS.

Ansin ceachtar:

  1. Cuir iontráil isteach i do URLConf. Mar shampla:

    Code
    urlpatterns = [
        path("pages/", include("django.contrib.flatpages.urls")),
    ]
    

nó:

  1. Cuir ``django.contrib.flatpages.middleware.flatpageFallbackmiddleware'` le do shuíomh: MIDDLEWARE.

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

Conas a oibríonn séLink to this heading

Cruthaíonn manage.py migrate dhá thábla i do bhunachar sonraí: django_flatpage agus django_flatpage_sites. Is tábla cuardaigh é django_flatpage a mhéapálann URL chuig teideal agus dornán ábhar téacs. Comhcheanglaíonn django_flatpage_sites leathanach cothrom le suíomh.

Ag baint úsáide as an URLConfLink to this heading

There are several ways to include the flatpages in your URLconf. You can dedicate a particular path to flatpages:

Code
urlpatterns = [
    path("pages/", include("django.contrib.flatpages.urls")),
]

Is féidir leat é a chur ar bun mar phatrún “catchall” freisin. Sa chás seo, tá sé tábhachtach an patrún a chur ag deireadh na urlpattern eile:

Code
from django.contrib.flatpages import views

# Your other patterns here
urlpatterns += [
    re_path(r"^(?P<url>.*/)$", views.flatpage),
]

Another common setup is to use flatpages for a limited set of known pages and to hardcode their URLs in the URLconf:

Code
from django.contrib.flatpages import views

urlpatterns += [
    path("about-us/", views.flatpage, kwargs={"url": "/about-us/"}, name="about"),
    path("license/", views.flatpage, kwargs={"url": "/license/"}, name="license"),
]

The kwargs argument sets the url value used for the FlatPage model lookup in the flatpage view.

The name argument allows the URL to be reversed in templates, for example using the url template tag.

Ag baint úsáide as an middlewareLink to this heading

Is féidir leis an:class: ~django.contrib.flatpages.middleware.flatpageFallbackmiddleware an obair go léir a dhéanamh.

class FlatpageFallbackMiddlewareLink to this definition

Gach uair a ardaíonn aon fheidhmchlár Django earráid 404, seiceálann an middleware seo bunachar sonraí na flatpages don URL iarrtha mar rogha dheiridh. Go sonrach, seiceálann sé leathanach comhréidh leis an URL tugtha le ID láithreáin a fhreagraíonn don socrú: setting: SITE_ID.

Má aimsíonn sé meaitseáil, leanann sé an algartam seo:

  • Má tá teimpléad saincheaptha ag an flatpage, luchtaíonn sé an teimpléad sin. Seachas sin, luchtaíonn sé an teimpléad:file: flatpages/default.html.

  • Cuireann sé athróg comhthéacs aonair ar an teimpléad sin, flatpage`, arb é an réad leathanaigh réidh. Úsáideann sé: aicme: ~django.template.requestContext chun an teimpléad a rindreáil.

Ní chuirfidh an middleware slasc agus atreorú (trí fhéachaint ar an socrú: “APPEND_SLASH`”) má thagraíonn an URL mar thoradh air do leathanach comhréidh bailí. Tá athreoruithe buan (cód stádais 301).

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

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

Tabhair faoi deara go bhfuil tábhacht ag ordú:setting: MIDDLEWARE. Go ginearálta, is féidir leat: class: ~django.contrib.flatpages.middleware.flatpageFallBackMiddleware a chur ag deireadh an liosta. Ciallaíonn sé seo go rithfidh sé ar dtús agus an freagra á bpróiseáil, agus cinntíonn sé go bhfeiceann aon mheánearraí próiseála freagartha eile an fíor-fhreagairt leathanaigh réidh seachas an 404.

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

Conas leathanaigh réidh a chur leis, a athrú agus a scriosadhLink to this heading

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

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

Tá réimse enable_comments sa tsamhail flatpage nach n-úsáideann contrib.flatpages`, ach d'fhéadfadh sé sin a bheith úsáideach do do thionscadal nó d'aipeanna tríú páirtí. Níl sé le feiceáil sa chomhéadan riaracháin, ach is féidir leat é a chur leis trí “ModelAdmin” saincheaptha a chlárú le haghaidh flatpage:

Code
from django.contrib import admin
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
from django.utils.translation import gettext_lazy as _


# Define a new FlatPageAdmin
class FlatPageAdmin(FlatPageAdmin):
    fieldsets = [
        (None, {"fields": ["url", "title", "content", "sites"]}),
        (
            _("Advanced options"),
            {
                "classes": ["collapse"],
                "fields": [
                    "enable_comments",
                    "registration_required",
                    "template_name",
                ],
            },
        ),
    ]


# Re-register FlatPageAdmin
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)

Trí API PythonLink to this heading

Flatpages are represented by a standard Django model, FlatPage. You can access flatpage objects via the Django database API.

FlatPage modelLink to this heading

class models.FlatPageLink to this definition

RéimsíLink to this heading

FlatPage objects have the following fields:

class models.FlatPage
urlLink to this definition

Required. 100 characters or fewer. Indexed for faster lookups.

titleLink to this definition

Required. 200 characters or fewer.

contentLink to this definition

Optional (blank=True). TextField that typically, contains the HTML content of the page.

enable_commentsLink to this definition

Boolean. This field is not used by flatpages by default and does not appear in the admin interface. Please see flatpages admin interface section for a detailed explanation.

template_nameLink to this definition

Optional (blank=True). 70 characters or fewer. Specifies the template used to render the page. Defaults to flatpages/default.html if not provided.

sitesLink to this definition

Many-to-many relationship to Site, which determines the sites the flatpage is available on.

ModhannaLink to this heading

class models.FlatPage
get_absolute_url()Link to this definition

Returns the relative URL path of the page based on the url attribute.

Teimpléid FlatpageLink to this heading

By default, flatpages are rendered via the template flatpages/default.html, but you can override that for a particular flatpage: in the admin, a collapsed fieldset titled "Advanced options" (clicking will expand it) contains a field for specifying a template name. If you're creating a flatpage via the Python API you can set the template name as the field template_name on the FlatPage object.

Tá freagracht ort an teimpléad:file: flatpages/default.html a chruthú; i d'eolaire teimpléad, cruthaigh eolaire a:file: flatpages ina bhfuil comhad:file: default.html.

Cuirtear athróg comhthéacs amháin ar theimpléid flatpage, flatpage`, arb é an réad flatpage.

Seo sampla: comhad: teimpléad flatpages/default.html:

Django template
<!DOCTYPE html>
<html lang="en">
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
{{ flatpage.content }}
</body>
</html>

<automatic-html-escaping>Ós rud é go bhfuil HTML amh á iontráil agat cheana féin sa leathanach riaracháin le haghaidh leathanach cothrom, marcáiltear flatpage.title agus flatpage.content` araon mar not ag iarraidh:ref: `uathoibríoch HTML éalú `sa teimpléad.

Ag fáil liosta de:class: ~django.contrib.flatpages.models.flatpage rudaí i do theimpléidLink to this heading

<hooking-into-current-site-from-views>Soláthraíonn an aip flatpages clib teimpléad a ligeann duit athrá a dhéanamh thar na leathanaigh cothroma go léir atá ar fáil ar:ref: `láithreán reatha `.

Cosúil le gach clib teimpléad saincheaptha, beidh ort: ref: a leabharlann clibeanna saincheaptha a luchtú sula bhfé <loading-custom-template-libraries>adfaidh tú é a úsáid. Tar éis duit an leabharlann a luchtú, is féidir leat gach leathanach cothrom reatha a aisghabháil tríd an gclibe:ttag: `get_flatpages:

Django template
{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
    {% for page in flatpages %}
        <li><a href="{{ page.url }}">{{ page.title }}</a></li>
    {% endfor %}
</ul>

Ag taispeáint leathanaigh árasán clárúcháin_riachtanaLink to this heading

De réir réamhshocraithe, ní thaispeánfaidh an clib teimpléad:ttag: get_flatpages ach leathanaigh chomhpháirteanna atá marcáilte registration_required = False. Más mian leat leathanaigh árasaithe atá cosanta ó chlárú a thaispeáint, ní mór duit úsáideoir fíordheimhnithe a shonrú ag baint úsáide as clásal for`.

Mar shampla:

Django template
{% get_flatpages for someuser as about_pages %}

Má sholáthraíonn tú úsáideoir gan ainm, iompróidh :ttag: get_flatpages mar an gcéanna is dá mbeadh úsáideoir curtha ar fáil agat - ie, ní thaispeánfaidh sé ach leathanaigh árasán poiblí duit.

Leathanaigh réidh a theorannú de réir URL bonnLink to this heading

Is féidir argóint roghnach, starts_with, a chur i bhfeidhm chun na leathanaigh a chuirtear ar ais a theorannú dóibh siúd a thosaíonn le URL bonn áirithe. Féadfar an argóint seo a rith mar shreang, nó mar athróg le réiteach ón gcomhthéacs.

Mar shampla:

Django template
{% get_flatpages '/about/' as about_pages %}
{% get_flatpages about_prefix as about_pages %}
{% get_flatpages '/about/' for someuser as about_pages %}

Comhtháthú le:mod: django.contrib.sitemapsLink to this heading

class FlatPageSitemapLink to this definition

<django.contrib.sites>Breathnaíonn an rang:class: SiteMaps.flatPageSitemap <django.contrib.flatpages.sitemaps.FlatPageSitemap>`ar gach ceann atá le feiceáil go poibl:mod: `~django.contrib.flatpages atá sainmhínithe don reath:setting: SITE_ID (féach an doiciméadú: mod: sites) agus cruthaíonn sé iontráil sa léarscáil. Ní áirítear ar na hiontrálacha seo ach an tréith: attr: ~django.contrib.sitemaps.sitemap.location -- not:attr: ~django.contrib.sitemaps.sitemap.lastmod, :attr: ~django.contrib.sitemaps.sitemap.changeFreq nó:attr: ~django.contrib.sitemaps.sitemap.changeFreq .contrib.sitemaps.sitemap.priority`.

SamplaLink to this heading

Seo sampla de URLConf ag baint úsáid:class: FlatPageSitemap:

Code
from django.contrib.flatpages.sitemaps import FlatPageSitemap
from django.contrib.sitemaps.views import sitemap
from django.urls import path

urlpatterns = [
    # ...
    # the sitemap
    path(
        "sitemap.xml",
        sitemap,
        {"sitemaps": {"flatpages": FlatPageSitemap}},
        name="django.contrib.sitemaps.views.sitemap",
    ),
]