Nótaí scaoilte Django 1.4Link to this heading
23 Márta, 2012
Fáilte go dtí Django 1.4!
Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-1.4>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-1.4> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.3 nó leaganacha níos sine. <deprecated-features-1.4>Tá roinnt gnéithe titim againn freisin, atá mionsonraithe in:ref: ár bplean díghabhála <deprecation-removed-in-1.4>, agus chuireamaire:ref: tús leis an bpróiseas díghabhála do roinnt gnéithe.
ForbhreathnúLink to this heading
Is é an ghné nua is mó i Django 1.4 ná `tacaíocht do chriosanna ama `_ agus dáta/amanna á láimhseáil. Nuair a bheidh sé cumasaithe, stóráilfidh an Django seo dáta/amanna in UTC, úsáidfidh sé rudaí atá ar an eolas faoi chrios ama go hinmheánach, agus aistrfidh siad iad chuig criosanna ama áitiúla úsáideoirí le taispeáint.
Má tá tú ag uasghrádú ar thionscadal atá ann cheana go Django 1.4, d'fhéadfadh go mbeadh cúram ag aistriú go dtí an modh feasach ar an gcrios ama: ní cheadaíonn an modh nua roinnt iompar sách lasc a nglacíodh leis. <time-zones-faq>Molaimid do dhuine ar bith atá ag uasghrádú chun seiceáil ar an: ref: treoir imirce crios ama `agus an:ref: `Ceisteanna Coitianta Time-zone<time-zones-migration-guide> le haghaidh leideanna úsáideacha.
I measc na ngnéithe nua suntasacha eile i Django 1.4 tá:
Roinnt feabhsuithe ORM, lena n-áirítear SELECT FOR UPDATE taca, an cumas mórchóir tacair mhóra sonraí le haghaidh feidhmíochta feabhsaithe, agus QuerySet.prefetch_related, modh chun rudaí gaolmhara a luchtú i réimsí ina nd:meth: ~django.db.models.queryset.select.select.queryset.select.select.Ní oibríonn _related.
Roinnt breiseanna slándála deas, lena n-áirítear hashing pasfhocal feabhsaithe (ina bhfuil tacaíocht PBKDF2 agus bcrypt), uirlisí nua le haghaidh síniú cripteagrafac, roinnt feabhsuithe CSRF _, agus `cosaint clickjacking simplí.
'leagan amach tionscadail réamhshocraithe nuashonraithe agus manage.py`_ a bhaineann an “draíocht” ó leaganacha roimhe seo. Agus dóibh siúd nach dtaitníonn an leagan amach nua dóibh, is féidir leat teimpléid tionscadail agus aipeanna saincheapaithe a úsáid ina ionad sin!
`Tacaíocht do chreataí tástála in-bhrabhsálaí `_ (cosúil le Selenium).
... agus go leor eile; féach thíos!
Nuair is féidir déanaimid iarracht gnéithe nua a thabhairt isteach ar bhealach atá comhoiriúnach ar gcúl de réir ár mbeartas cobhsaíochta API. Mar a tharla le heisiúintí roimhe seo, áfach, long Django 1.4 le roinnt mionathruithe :tag:`ar gcúl athruithe neamh-chomhoiriúnacha <backwards-incompatible-1.4>`; ba chóir do dhaoine atá ag uasghrádú ó leaganacha níos sine de Django an liosta sin a léamh go cúramach.
Comhoiriúnacht PythonLink to this heading
Tá tacaíocht do Python 2.4 titim ag Django 1.4. Is é Python 2.5 anois an leagan Python íosta riachtanach. Déantar tástáil agus tacaítear le Django ar Python 2.5, 2.6 agus 2.7.
Níor cheart go mbíonn tionchar ag an athrú seo ach ar líon beag úsáideoirí Django, mar tá formhór na ndíoltóirí córais oibriúcháin inniu ag seoladh Python 2.5 nó níos nuaí mar a leagan réamhshoc Má tá Python 2.4 á úsáid agat fós, áfach, beidh ort cloí le Django 1.3 go dtí gur féidir leat uasghrádú a dhéanamh. Per:doc: `ár mbeartas tacaíochta ', leanfaidh </internals/release-process> Django 1.3 ag fáil tacaíochta slándála go dtí go scaoilfear Django 1.5.
Ní thacaíonn Django le Python 3.x ag an am seo. Ag pointe éigin roimh scaoileadh Django 1.4, tá sé beartaithe againn doiciméad a fhoilsiú ina leagtar amach ár n-amlíne iomlán chun Python 2.x a dhíspreagadh agus bogadh go Python 3.x.
Cad atá nua i Django 1.4Link to this heading
Tacaíocht do chriosanna amaLink to this heading
I leaganacha roimhe seo, d’úsáid Django dáta/amanna “naive” (is é sin, dáta/amanna gan crios ama gaolmhar), rud a fhágann gur faoi gach forbróir é a léirmhíniú cad a chiallaíonn dáta/am tugtha “i ndáiríre”. Is féidir leis seo a bheith ina chúis le gach cineál fabhtanna subtle a bhaineann le crios ama.
I Django 1.4, is féidir leat Django a aistriú go modh níos ceart, atá feasach ar chrios ama anois. Sa mhodh seo, stóráilíonn Django faisnéis dáta agus ama i UTC sa bhunachar sonraí, úsáideann sé rudaí dáta-ama atá ar an eolas ó chrios ama go hinmheánach agus aistríonn sé iad go crios ama an úsáideora deiridh i dteimpléid agus i bhfoirmeacha. I measc na gcúiseanna chun an ghné seo a úsáid tá:
Taispeántas dáta agus ama a shaincheapadh d'úsáideoirí ar fud an domhain.
Dáta a stóráil in UTC le haghaidh iniomparthacht bunachar sonraí agus idir-inoibritheacht (Ní bhaineann an argóint seo le PostgreSQL, toisc go stórálann sé stampaí ama cheana féin le faisnéis chrios ama i Django 1.3.)
Fadhbanna éillithe sonraí a sheachaint ar aistrithe DST.
Cumasaítear tacaíocht crios ama de réir réamhshocraithe i dtionscadail nua a cruthaíodh le:djadmin: startproject. <time-zones-migration-guide>Más mian leat an ghné seo a úsáid i dtionscadal atá ann cheana, léigh an:ref: treoir imirce`. <time-zones-faq>Má bhíonn fadhbanna agat, tá cabhrach ann: ref: `Ceisteanna Coitianta `.
Tacaíocht do chreataí tástála in-bhrabhsálaLink to this heading
Tacaíonn Django 1.4 le comhtháthú le creataí tástála in-bhrabhsálaí cosúil le Selenium. Ligeann an rang bonn nua:class: django.test.liveservertestcase duit na hidirghníomhaíochtaí idir foircinn tosaigh agus cúl do shuíomh a thástáil níos cuimsitheach. Féach an:class: `doiciméadú <django.test.LiveServerTestCase>`le haghaidh tuilleadh sonraí agus samplaí nithiúla.
Leagan amach tionscadail réamhshocraithe nuashonraithe agus manage.py`Link to this heading
Seoltar Django 1.4 le leagan amach réamhshocraithe tionscadail nuashonraithe agus comhad manage.py don ordú bainistíochta : djadmin: startproject. Réitíonn siad seo roinnt fadhbanna leis an láimhseáil manage.py roimhe seo ar chonairí allmhairithe Python a d'eascair allmhairí dúbailte, deacracht ag bogadh ó fhorbairt go himscaradh, agus saincheisteanna cosáin eile a bhí deacair le dífhabhtú.
Tugadh na manage.py roimhe seo ar fheidhmeanna atá díscoite anois, agus dá bhrí sin ba cheart do thionscadail a uasghrádú go Django 1.4 a “manage.py” a nuashonrú. (Leanfaidh an sean-stíl manage.py` ag obair mar a bhí roimhe seo go dtí Django 1.6. I 1.5 ardóidh sé DeprecationWarning).
Ba chóir go mbeadh cuma seo ar an gcomhad nua manage.py a mholtar:
#!/usr/bin/env python
import os, sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Ba chóir ainm pacáiste Python an tionscadail iarbhír a chur in ionad {{project_name}}.
Má iompórtáiltear nó má dhéantar socruithe, URLConfs agus aipeanna laistigh den tionscadal ag úsáid réimír ainm an tionscadail (m.sh. myproject.settings, ROOT_URLCONF = “myproject.urls", srl.), ní mór an manage.py nua a aistriú suas, mar sin tá sé lasmuigh den phacáiste tionscadail seachas in aice le settings.py` agus ``urls.py`.
Mar shampla, leis an leagan amach seo a leanas:
manage.py
mysite/
__init__.py
settings.py
urls.py
myapp/
__init__.py
models.py
D'fhéadfá mysite.settings, mysite.urls`, agus mysite.myapp` a iompórtáil, ach ní settings, urls, nó myapp` mar mhodúil barrleibhéil.
Is féidir aon rud a allmhairítear mar mhodúl barrleibhéil a chur in aice leis an manage.py nua. Mar shampla, chun myapp` a dhícheangal ón modúl tionscadail agus é a iompórtáil mar myapp`, cuir lasmuigh den eolaire mysite/ é:
manage.py
myapp/
__init__.py
models.py
mysite/
__init__.py
settings.py
urls.py
Má iompórtar an cód céanna go neamhchomhsheasmhach (áiteanna áirithe le réimír an tionscadail, áiteanna áirithe gan é), beidh gá na hallmhairí a ghlanadh agus iad ag aistriú chuig an manage.py nua.
Teimpléid tionscadail agus aip saincheapthaLink to this heading
Tá rogha ``--teimpléad ``anois ag na horduithe bainistíochta: djadmin: startapp agus:djadmin: startproject chun cosán nó URL a shonrú chuig aip saincheaptha nó teimpléad tionscadail.
Mar shampla, úsáidfidh Django an eolaire /path/to/my_project_template nuair a ritheann tú an t-ordú seo a leanas:
django-admin.py startproject --template=/path/to/my_project_template myproject
Is féidir leat eolaire ceann scríbe a sholáthar anois mar an dara argóint chuig an dá cheann:djadmin: startapp agus:djadmin: startproject:
django-admin.py startapp myapp /path/to/new/app
django-admin.py startproject myproject /path/to/new/project
Le haghaidh tuilleadh faisnéise, féach an doiciméad:djadmin: startapp agus:djadmin: startproject.
Tacaíocht WSGI feabhsaitheLink to this heading
Cuireann an t-ordú bainistíochta: DJADmin: startproject modúl a:file: wsgi.py anois le leagan amach tosaigh an tionscadail, ina bhfuil feidhmchlár simplí WSGI is féidir a úsáid le haghaidh: doc: `imscaradh le freastalaithe aipeanna</howto/deployment/wsgi/index> WSGI'.
Tacaíonn <runserver>an: DJAdmin: “freastalaí forbartha ionsuite” anois le glaoch WSGI atá sainmhínithe go seachtrach a úsáid, rud a fhágann gur féidir ``runserver` a reáchtáil leis an gcumraíocht WSGI céanna a úsáidtear le haghaidh imscaradh. Ligeann an socrú nua:setting: WSGI_APPLICATION duit a chumrú a úsáideann WSGI callable:djadmin: runserver.
(Cumhdaíonn an t-ordú bainistíochta ``runfcgi` go hinmheánach an WSGI cumraithe inghlaonta trí:setting: WSGI_APPLICATION.)
Tacaíocht ``ROGHNAIGH LE HAGHAIDH NUASHONRÚ ``Link to this heading
<django.db.models.query.QuerySet.select_for_update>Cuimsíonn Django 1.4 modh a:meth: QuerySet.Select_for_Update () `, a ghineann ``SELECT... LE HAGHAIDH NUASHONRÚ ``fiosrúchán SQL. Glasálfaidh sé seo sraitheanna go dtí deireadh an idirbheart, rud a chiallaíonn nach féidir le hidirbhearta eile sraitheanna a mheaitseáil le ceist `FOR UPDATE` a mhodhnú nó a scriosadh.
Le haghaidh tuilleadh sonraí, féach an doiciméadú le haghaidh: meth: ~django.db.models.query.queryset.select_for_update.
Model.objects.bulk_create sa ORMLink to this heading
Ligeann an modh seo duit rudaí iomadúla a chruthú níos éifeachtaí D'fhéadfadh méaduithe suntasacha feidhmíochta a bheith mar thoradh air má tá go leor rudaí agat.
Baineann Django úsáid as seo go hinmheánach, rud a chiallaíonn go bhfaca sochar feidhmíochta roinnt oibríochtaí (mar shampla socrú bunachar sonraí do shraith tástála) mar thoradh air sin.
Féach na docs: meth: ~django.db.models.query.queryset.bulk_create le haghaidh tuilleadh faisnéise.
Hashing pasfhocal feabhsaitheLink to this heading
Stórálann córas auth Django (django.contrib.auth) pasfhocail ag baint úsáide as algartam aon-bhealaigh. Úsáideann Django 1.3 an algartam SHA1, ach léirigh luasanna próiseálaí agus ionsaithe teoiriciúla ag méadú nach bhfuil SHA1 chomh slán agus is mian linn. Dá bhrí sin, tugann Django 1.4 córas nua stórála pasfhocal isteach: de réir réamhshocraithe úsáideann Django anois algartam PBKDF2 (mar a mhol NIST). Is féidir leat algartam difriúil a roghnú go héasca freisin (lena n-áirítear an algartam bcrypt coitianta). Le haghaidh tuilleadh sonraí, féach:ref: auth_password_storage.
HTML5 doctypeLink to this heading
Tá an riarachán agus teimpléid cuachta eile tar éis aistriú againn chun an doctype HTML5 a úsáid. Cé go mbeidh Django cúramach comhoiriúnacht le brabhsálaithe níos sine a choinneáil, ciallaíonn an t-athrú seo gur féidir leat aon ghnéithe HTML5 a theastaíonn uait a úsáid i leathanaigh riaracháin gan bailíocht HTML a chailleadh nó na teimpléid a chuirtear ar fáil chun an doctype a athrú.
Liostaigh scagairí i gcomhéadan adminLink to this heading
Roimh Django 1.4, lig an aip: mod: ~django.contrib.admin duit scagairí liosta athraithe a shonrú trí chuardach réimse a shonrú, ach níor chead sé duit scagairí saincheaptha a chruthú. Ceartaíodh é seo le API simplí (a úsáidtear go hinmheánach roimhe seo agus ar a dtugtar “FilterSpec”). Le haghaidh tuilleadh sonraí, féach an doiciméadú le haghaidh: attr: `~django.contrib.admin.modeladmin.list_filter.
Sórtáil iolrach i gcomhéadan adminLink to this heading
Tacaíonn an liosta athraithe riaracháin anois le sórtáil ar iliomad colún Tá meas aige ar gach gné den tréith: attr: ~django.contrib.admin.modelAdmin.Ordering, agus tá sórtáil ar iliomad colúin trí chliceáil ar cheanntásca deartha chun aithris a dhéanamh ar iompar GUIanna deisce. Chuireamar modh a:meth: ~django.contrib.admin.modeladmin.get_ordering freisin chun an t-ordú a shonrú go dinimiciúil (ie, ag brath ar an iarratas).
Modhanna nua ModelAdminLink to this heading
Chuireamar modh a:meth: ~django.contrib.admin.modeladmin.save_related leis: mod: ~django.contrib.admin.modelAdmin chun saincheapadh a éascú ar an gcaoi a shábháiltear rudaí gaolmhara sa riarachán.
Cumasaíonn dhá mhodh nua eile: ~django.contrib.admin.modelAdmin, :meth: ~django.contrib.admin.modeladmin.get_list_display agus:meth: ~django.contrib.admin.modeladmin.get_list_display_links saincheapadh dinimiciúil réimsí agus naisc a thaispeántar ar an liosta athraithe admin.
Meas ar línte riaracháin ceadanna úsáideoraLink to this heading
Ní cheadaíonn inlínte riaracháin anois ach na gníomhartha sin a bhfuil cead ag an úsáideoir dóibh. Maidir le caidrimh ``ManyTomany` le samhail idirmheánach a chruthaítear go huathoibríoch (nach bhfuil a cheadanna féin aige), cinneann an cead athraithe don tsamhail ghaolmhar an bhfuil cead ag an úsáideoir caidrimh a chur leis, a athrú nó a scriosadh.
Uirlisí le haghaidh síniú cripteagrafachLink to this heading
Cuireann Django 1.4 API leibhéal íseal le haghaidh luachanna a shíniú agus API ardleibhéil chun fianáin sínithe a shocrú agus a léamh, ceann de na húsáidí is coitianta a bhaineann le síniú feidhmchláir ghréasáin.
Féach na doiciméid síniú cripteagrafach le haghaidh tuilleadh eolais.
Draoi foirm nuaLink to this heading
Cuireadh cur i bhfeidhm nua in ionad an FormWizard roimhe seo ó django.contrib.formtools` bunaithe ar na tuairimí ranga-bhunaithe a tugadh isteach i Django 1.3. Tá API stórála in-phlugáilte aige agus ní éilíonn sé ar an draoi dul timpeall réimsí i bhfolach do gach céim roimhe seo.
Seolann Django 1.4 le cúltaca stórála bunaithe ar sheisiún agus cúltaca stórála bunaithe ar fhianán. Úsáideann an dara ceann na huirlisí le haghaidh: doc: `síniú cripteagrafach' a tugadh isteach i Django 1.4 freisin chun staid an draoi a stóráil i bhfi</topics/signing> anáin an úsáideora.
`reverse_lazyLink to this heading
Cuireadh leagan meastóireachta go leisciúil de ``reverse () ``chun ligean aisiompú URL a úsáid sula luchtaítear URLConf an tionscadail.
Patrúin URL a aistriúLink to this heading
Is féidir le Django réimír teanga a lorg anois sa URLPattern agus an fheidhm chúntóra nua:func: ~django.conf.urls.i18n.i18n_patterns á úsáid agat. Is féidir anois patrúin URL inaistrithe a shainiú ag baint úsáide as ``django.utils.translation.ugettext_lazy () ``. Féach:ref: url-idirnáisiúnach le haghaidh tuilleadh faisnéise faoin réimír teanga agus conas patrúin URL a idirnáisiúnú.
Tacaíocht aistriúcháin chomhthéacsúil do {% trans%} agus {% blocktrans%}Link to this heading
Leathnaíodh an taca <contextual-markers>íocht: Ref: aistriúchán comhthéacsúil `a tugadh isteach i Django 1.3 tríd an bhfeidhm ``pgettext` chuig clibeanna teimpléad:ttag: trans agus:ttag: blocktrans ag baint úsáide as an eochairfhocal nua context.
UrlConf kwargs inúsáidte SingleObjectMixinLink to this heading
Cuireadh dhá thréith nua, :attr: pk_url_kwarg `agus:attr: <django.views.generic.detail.SingleObjectMixin.pk_url_kwarg>slug_url_kwarg , la:class: `~django.views.generic.detail.singleObjectMixin chun saincheapadh argóintí eochairfhocal URLConf a úsáidtear le haghaidh tuairimí cineálacha réad aonair a chumas <django.views.generic.detail.SingleObjectMixin.slug_url_kwarg>ú.
Tacaíocht *args agus ``**kwargs ``d'fheidhmeanna cúntóra clibeanna teimpléadLink to this heading
Féadfaidh na feidhmeanna cúntóra teimpléad:ref: simple_tag <howto-custom-template-tags-simple-tags>, :ref: inclusion_tag agus feidhmeanna cúntóra teimpléad <howto-custom-template-tags-inclusion-tags>assignment_tag nua-tugadh isteach glacadh anois le haon líon argóintí seasaimh nó eochairfhocal. Mar shampla:
@register.simple_tag
def my_tag(a, b, *args, **kwargs):
warning = kwargs["warning"]
profile = kwargs["profile"]
...
return ...
Ansin, sa teimpléad, féadfar aon líon argóintí a chur chuig an gclib teimpléid. Mar shampla:
{% my_tag 123 "abcd" book.title warning=message|lower profile=user.profile %}
Gan aon eisceachtaí a fhilleadh i mód ``TEMPLATE_DEBUG`Link to this heading
I leaganacha roimhe seo de Django, aon uair a bhí an socrú TEMPLATE_DEBUG` ``True, filleadh in TemplateSyntaxError` aon eisceacht a ardaíodh le linn rindreáil teimpléad (fiú eisceachtaí nach mbaineann le comhréiteach teimpléad) agus ath-ardaíodh. Rinneadh é seo d'fhonn faisnéis mhionsonraithe suíomh foinse teimpléad a sholáthar ar an leathanach dífhabhtú 500.
I Django 1.4, níl eisceachtaí fillte a thuilleadh. Ina áit sin, tá an eisceacht bhunaidh anótáilte leis an bhfaisnéis fhoinse. Ciallaíonn sé seo go bhfuil eisceachtaí a ghabháil ó rindreáil teimpléid comhsheasmhach anois beag beann ar luach TEMPLATE_DEBUG`, agus ní gá ``TemplateSyntaxError a ghabháil agus a dhífhilleadh d'fhonn earráidí eile a ghabháil.
scagaire teimpléad truncatecharsLink to this heading
Déanann an scagaire nua seo sreang a ghearradh nach mbeidh níos faide ná an líon sonraithe carachtair. Críochnaíonn teaghráin ghearrtha le seicheamh ellipsis inaistrithe (“...”). Féach an doiciméadú le haghaidh: tfilter: truncatechars le haghaidh tuilleadh sonraí.
Clib teimpléad ``static`Link to this heading
<django.contrib.staticfiles>Tá clib teimpléad nua static ag an aip contrib staticfiles `chun tagairt a dhéanamh do chomhaid a shábháiltear leis an gcúltaca stórála ``STATICFILES_STORAGE`. <staticfiles-from-cdn>Úsáideann sé modh ``url ``an chúltaca stórála agus dá bhrí sin tacaíonn sé le gnéithe chun cinn mar: ref: `comhaid a sheirbheáil ó sheirbhís scamall `.
Cúlcheann stórála CachedStaticFilesStorageLink to this heading
<django.contrib.staticfiles>Tá cúltaca django.contrib.staticfiles.storage.cachedStaticFilesStorage ag an aip contrib staticfiles `anois a choscann na comhaid a shábhálann sé (agus an t-ordú bainistíochta: djadmin: `collectstatic á rith) trí hash MD5 d'ábhar an chomhaid a chur leis an ainm comhaid. Mar shampla, sábhálfaí an comhad css/styles.css mar css/styles.55e7cbb9ba48.css`
Cosaint clickjacking simplíLink to this heading
Chuireamar lárearraí leis chun cosaint éasca a sholáthar in aghaidh clickjacking ag baint úsáide as an gceanntásc X-Frame-Options. Níl sé cumasaithe de réir réamhshocraithe ar chúiseanna comhoiriúnachta ar gcúl, ach is cinnte go mbeidh tú ag iarraidh :doc: a chumasú </ref/clickjacking/> chun cabhrú leis an bpoll slándála sin a phlugáil le haghaidh brabhsálaithe a thacaíonn leis an gceanntásc.
Feabhsuithe CSRFLink to this heading
Tá feabhsuithe éagsúla déanta againn ar ár ngnéithe CSRF, lena n-áirítear maisitheoir: func: ~django.views.decorators.csrf.ensure_csrf_cookie, ar féidir leo cabhrú le suíomhanna Ajax-heavy; cosaint d'iarratais PUT agus DELETE; agus an:setting: `CSRF_COOKIE_PATH, socruithe is féidir le slándáil agus úsáideacht cosanta CSRF a fheabhsú. Féach na:doc: CSRF docs le haghaidh tuilleadh eolais </ref/csrf>.
Scagadh tuairisc earráideLink to this heading
Chuireamar dhá mhaisitheoir feidhm leis, :func: ~django.views.decorators.debug.sensitive_variables agus:func: ~django.views.decorators.debug.sensitive_post_parameters, chun na hathróga áitiúla agus paraiméadair POST a dheimhniú a d'fhéadfadh faisnéis íogair a bheith ann agus ba chóir iad a scagadh as tuarascálacha earráide.
Déantar gach paraiméadar POST a scagadh go córasach anois as tuarascálacha earráide le haghaidh tuairimí áirithe (login, password_reset_confirm`, password_change` agus add_view in:mod: django.contrib.auth.views, chomh maith le user_change_password san aip admin) chun faisnéis íogair a chosc mar shampla pasfhocail úsáideora.
<custom-error-reports>Is féidir leat an scagadh réamhshocraithe a shárú nó a shaincheapadh trí scríobh a:ref: scagaire saincheapaithe. <filtering-error-reports>Le haghaidh tuilleadh faisnéise féach na doiciméid ar:ref: `Tuarascálacha earráide scagtha `.
Tacaíocht leathnaithe IPv6Link to this heading
Is féidir le Django 1.4 seoltaí IPv6 a láimhseáil níos fearr anois leis an réimse múnla nua:class: ~django.db.models.genericipAddressField, :class: ~django.forms.genericipAddressField agus na bailíoróir:data: ~django.core.validators.validate_ipv46_address agus:data: ~django.core.validators.validate_ipv46_address agus:data: ~django.core.validators.validate_ipv46_address agus:data: ~django.djan.go.core.validators.validate_ipv6_seolads.
Comparáidí HTML i dtástálachaLink to this heading
Tá roinnt cúntóirí anois ag na bunaicmí in:mod: django.test chun HTML a chur i gcomparáid gan difríochtaí neamhábhartha i spás bán, luach/ordú argóintí agus dúnadh clibeanna féin-dhúnadh. Is féidir leat HTML a chur i gcomparáid go díreach leis na dearbhóidí nua:meth: ~django.test.simpletestCase.asserthtmlequal agus:meth: ~django.test.simpletestcase.asserthtmlNoteQual, nó an bhratach html=True` a úsáid le:meth: ~django.test.simpletestCase.AssertAssertAssertAssertAssertAssertAssertAssertX `agus:meth: `~django.test.simpletestCase.assertNotContains chun tástáil a dhéanamh an bhfuil blúir HTML ar leith i bhfreagra an chliaint. <assertions>Féach doiciméadach:ref: `dearbhóireachtaí `le haghaidh tuilleadh eolais.
Dhá teaghráin formáid dáta nuaLink to this heading
Cuireadh dhá fhormáid nua: tfilter: dáta le húsáid i scagairí teimpléad, clibeanna teimpléad agus:doc: /topics/i18n/formatting:
Déan cinnte do thoil do chuid comhad formáid saincheaptha a nuashonrú má <custom-format-files>tá e` nó `i sreang formáide iontu. Mar shampla ní éalaigh formáid logánaithe na Spáinne roimhe seo ach an carachtar formáide `d:
DATE_FORMAT = r"j \de F \de Y"
Ach anois caithfidh sé éalú freisin e agus ````:
DATE_FORMAT = r"j \d\e F \d\e Y"
Le haghaidh tuilleadh faisnéise, féach an doiciméadach:tfilter: date.
MionghnéitheLink to this heading
Cuimsíonn Django 1.4 roinnt feabhsuithe níos lú ar fiú a thabhairt faoi deara:
Stacktrace níos inúsáidte ar an leathanach teicniúil 500. Déantar frámaí sa rian cruach a thagann tagairt do chód creat Django a laghdú amach, agus cuirtear béim beagán ar fhrámaí sa chód feidhmchláir. Fágann an t-athrú seo go bhfuil sé níos éasca stacktrace a scanadh le haghaidh saincheisteanna i gcód feidhmchláir.
Tacaíocht tablespace in PostgreSQL.
Ainmneacha inoiriúnaithe le haghaidh: meth: ~django.template.library.simple_tag.
Sa doiciméadú, leathanach cabhrach: doc: `léirmheas slándála' </topics/security>.
Tá an fheidhm
django.contrib.auth.models.check_passwordaistrithe chuig an modúl:mod: django.contrib.auth.hashers. Oibreoidh é a iompórtáil ón sean-áit fós, ach ba cheart duit d'allmhairí a nuashonrú.Tá rogha
--clearanois ag an ordú bainistíochta: DjaDmin: collectstatic chun gach comhad ag an gceann scríbe a scriosadh sula ndéanfar na comhaid statacha a chóipeáil nó a nascadh.Is féidir anois daingneáin ina bhfuil tagairtí tosaigh a luchtú agus MySQL á n-úsáid agat le hinneall bunachar sonraí InnoDB.
Cuireadh láimhseálaí nua 403 freagra leis mar ``'django.views.defaults.permission_denied'. Is féidir leat do láimhseálaí féin a shocrú trí luach: data: `django.conf.urls.handler403 a shocrú. Féach an doiciméadú fao:ref: `the 403 (HTTP Forbidden) view <http_forbidden_view>`le haghaidh tuilleadh faisnéise.
<jslex>Úsáideann an ordú:djaDmin: makemessages foclóir nua agus níos cruinne, :pypi: `JSLEX `, chun teaghráin inaistrithe a bhaint as comhaid JavaScript.
Glacann an chlib teimpléad:ttag: trans argóint roghnach `as ``anois chun a bheith in ann teaghrán aistriúcháin a aisghabháil gan é a thaispeáint ach athróg comhthéacs teimpléad a shocrú ina ionad.
Tacaíonn an clib teimpléad:ttag: if `anois le clásail ``{% elif%}`.
Má tá d'aip Django taobh thiar de sheachfhreastalaí, b'fhéidir go mbeadh an socrú nua:setting: SECURE_PROXY_SSL_HEADER úsáideach duit. Réitíonn sé an fhadhb a bhaineann le do sheachfhreastalaí “ag ithe” an bhfíric gur tháinig iarratas isteach trí HTTPS. Ach bain úsáid as an socrú seo ach má tá a fhios agat cad atá á dhéanamh agat.
Seoltar leagan nua, simple-théacs, den leathanach earráide inmheánach cód stádais HTTP 500 nuair a sheirbheáltar nuair:socrú: “Debug”
Truechuig an gcliant anois nuair a bhraitheann Django gur tháinig an t-iarratas i gcód JavaScript. (Úsáidtear ``is_ajax () ``chuige seo.)Cosúil lena mhacasamhail HTML, tá bailiúchán píosaí éagsúla faisnéise ann faoi staid an fheidhmchláir.
Ba chóir go mbeadh sé seo níos éasca léamh agus idirghníomhaíocht á dhifhabhtú le JavaScript taobh an chliaint.
Cuireadh an rogha: rogha: makemessages --no-location leis.
Athraigh cúltaca taisce
locmemchunpickle.highest_protocola úsáid chun comhoiriúnacht níos fearr leis na cúltaca taisce eile.Tacaíocht bhreise san ORM chun ceisteanna
SELECTa ghiniúint ina bhfuilDISTINCT ON.Glacann an modh
different () ```QuerySetanois le liosta roghnach d'ainmneacha réimse samhail. Má shonraítear é, ansin tá an ráiteasDISTINCTteoranta do na réimsí seo. Ní thacaítear leis seo ach i PostgreSQL.Le haghaidh tuilleadh sonraí, féach an doiciméadú le haghaidh: meth: ~django.db.models.query.queryset.Distinct.
Cuirfidh an leathanach logála isteach riaracháin nasc athshocraithe pasfhocal má chuireann tú URL leis an ainm
admin_password_reset'` i do `urls.py, mar sin tá sé i bhfad níos éasca anois an mheicníocht athshocraithe pasfhocal ionsuite a phlugáil isteach agus é a chur ar fáil. Le haghaidh sonraí, féach:ref: auth_password_reset.Is féidir le cúltaca bunachar sonraí MySQL úsáid a bhaint as an ngné savepoint a chuirtear i bhfeidhm ag leagan MySQL 5.0.3 nó níos nuaí leis an inneall stórála InnoDB.
Is féidir anois luachanna tosaigh a chur chuig na foirmeacha samhail atá mar chuid de fhoirmeacha samhail agus foirmeacha samhail inlíne araon mar a thugtar ar ais ó fheidhmeanna monarchan modelformset_factory` agus
inlineformset_factoryfaoi seach díreach mar atá le foirmeacha rialta. Mar sin féin, ní bhaineann luachanna tosaigh ach le foirmeacha breise, i.e. iad siúd nach bhfuil ceangailte le samhail shampla atá ann cheana.<django.contrib.sitemaps.Sitemap.protocol>Is féidir leis an creat léarscáileanna láithreáin naisc HTTPS a láimhseáil anois ag baint úsáide as an tréith aicme nua:attr: `SiteMap.protocol `.
Fo-aicme nua:class: Django.Test.SimpleTestCase de:class: UnitTest.TestCase atá níos éadroime ná: Class: Django.Test.TestCase agus cuideachta. Is féidir leis a bheith úsáideach i dtástálacha nach gá bunachar sonraí a bhualadh. Féach:ref: `testcase_hierarchy_diagram `.
Athruithe neamh-chomhoiriúnacha ar ais i 1.4Link to this heading
Tá socrú SECRET_KEY ag teastáilLink to this heading
Déanann rith Django le socrú folamh nó eol:setting: SECRET_KEY a dhíchumasú go leor de chosaintí slándála Django agus d'fhéadfadh leochaileachtaí iargúlta a fhorghníomhú cód a bheith mar thoradh air. Níor chóir aon suíomh Django a reáchtáil riamh gan a: socrú: SECRET_KEY.
I Django 1.4, ag tosú Django le folamh: setting: SECRET_KEY ardóidh DeprecationWarning. I Django 1.5, ardóidh sé eisceacht agus diúltóidh Django tosú. Déantar é seo a luasghéarú beagán ón ngnáthchosán mar gheall ar dhéine na n-iarmhairtí a bhaineann le Django a reáchtáil le no:setting: SECRET_KEY.
``django.contrib.admin ``Link to this heading
Tá an aip riaracháin san áireamh django.contrib.admin ``seolta le fada le tacar réamhshocraithe comhaid statacha mar JavaScript, íomhánna agus bileoga stíle. Chuir Django 1.3 aip contrib nua ``django.contrib.staticfiles leis chun comhaid den sórt sin a láimhseáil ar bhealach cineálach agus sainmhínigh coinbhinsiúin do chomhaid statacha atá san áireamh in aipeanna.
Ag tosú i Django 1.4, leanann comhaid statacha an riaracháin an coinbhinsiún seo freisin, chun na comhaid a dhéanamh níos éasca a imscaradh. I leaganacha roimhe seo de Django, bhí sé coitianta freisin socrú ADMIN_MEDIA_PREFIX ``a shainiú chun díriú ar an URL ina gcónaíonn comhaid statacha an riaracháin ar fhreastalaí gréasáin. Tá an socrú seo caite anois agus tá an socrú níos ginearálta:setting: `STATIC_URL` ina ionad. Beidh Django ag súil anois go bhfaighidh tú na comhaid statacha riaracháin faoin URL ``<STATIC_URL>/admin/.
Má d'úsáid tú conair URL do ADMIN_MEDIA_PREFIX roimhe seo (m.sh. / meáin/) déan cinnte go bhfuil :an socrú:STATIC_URL agus : socrú:STATIC_ROOT cumraithe agus go bhfreastalaíonn do fhreastalaí gréasáin ar na comhaid sin i gceart. Leanann an freastalaí forbartha ag freastal ar na comhaid riaracháin díreach mar a bhí roimhe seo. Léigh an comhaid statacha howto le haghaidh tuilleadh sonraí.
Má tá do ADMIN_MEDIA_PREFIX` socraithe ar fearann ar leith (m.sh. http://media.example.com/admin/), déan cinnte do shuíomh: STATIC_URL a shocrú go dtí an URL ceart - mar shampla, http://media.example.com/.
Brabhsálaithe tacaithe don riarachánLink to this heading
Ní raibh beartas soiléir ag Django maidir leis na brabhsálaithe a thacaíonn an aip riaracháin. Déanann ár mbeartas nua cleachtais atá ann cheana a fhoirmiú: Ba chóir go gcuirfeadh brabhsálaí YUI a Grád A eispéireas riaracháin lánfheidhmiúil a sholáthar, seachas suntasach Internet Explorer 6, nach dtacaítear leis a thuilleadh.
Scaoilte breis agus 10 mbliana ó shin, cuireann IE6 go leor teorainneacha ar fhorbairt gréasáin nua-aimsear Is iad impleachtaí praiticiúla an bheartais seo ná go bhfuil saor ó rannpháirtithe an riarachán a fheabhsú gan breithniú ar na teorainneacha seo.
Níl aon tionchar ag an mbeartas nua seo **ar shuíomhanna a fhorbraíonn tú ag úsáid Django. Ní bhaineann sé ach leis an riarthóir Django. Thig leat aipeanna a fhorbairt atá comhoiriúnach le haon raon brabhsálaithe.
Deilbhíní riaracháin bainteLink to this heading
Mar chuid d'iarracht feidhmíocht agus inúsáidteacht comhéadan sórtála liosta athraithe an riaracháin a fheabhsú agus:attr: cothrománach `agus:attr: giu <django.contrib.admin.ModelAdmin.filter_horizontal>irléidí `ingearach<django.contrib.admin.ModelAdmin.filter_vertical> “scagaire”, baineadh roinnt comhad deilbhín agus grúpaíodh ina dhá chomhad sprite.
Go sonrach: 'selector-add.gif``, selector-addall.gif`, selector-remove.gif`, selector-removeall.gif`, selector_stacked-add.gif` agus selector_stacked-remove.gif, selector_stacked-remove.gif` i selector-icons.gif`; agus Cuireadh `arrow-up.gif agus arrow-down.gif le chéile ina sorting-icons.gif.
Má d'úsáid tú na deilbhíní sin chun an riarachán a shaincheapadh, ansin beidh ort do dheilbhíní féin a chur in ionad iad nó na comhaid a fháil ó scaoileadh roimhe seo.
Ainmneacha ranga CSS i bhfoirmeacha riaracháinLink to this heading
Chun coinbhleachtaí le hainmneacha ranga CSS coitianta eile (m.sh. “cnaipe”) a sheachaint, chuireamar réimír (“field-”) le gach ainm ranga CSS a ghintear go huathoibríoch ó ainmneacha réimse na bhfoirme sna príomhfhoirmeacha riaracháin, foirmeacha inlíne cruachta agus cealla inlíne táblaí. Beidh ort an réimír sin a chur san áireamh i do bhileoga stíl saincheaptha nó i gcomhaid JavaScript má d'úsáid tú ainmneacha réimse simplí roimhe seo mar roghnóirí do stíleanna saincheaptha nó claochlú JavaScript.
Comhoiriúnacht le sean-sonraí síniLink to this heading
D'athraigh Django 1.3 na meicníochtaí sínithe cripteagrafacha a úsáidtear i roinnt áiteanna i Django. Cé gur choinnigh Django 1.3 bacainní a ghlacfadh le hashes a tháirgtear ag na modhanna roimhe seo, baintear na fallbacks seo i Django 1.4.
Mar sin, má dhéanann tú uasghrádú go Django 1.4 go díreach ó 1.2 nó níos luaithe, féadfaidh tú píosaí áirithe sonraí a síníodh go cripteagrafach a chailltear/neamhbhailí ag baint úsáide as sean-mhodh. Chun é seo a sheachaint, bain úsáid as Django 1.3 ar dtús ar feadh tréimhse ama chun ligean do na sonraí sínithe dul in éag go nádúrtha. Tá na codanna atá buailte mionsonraithe thíos, le 1) na hiarmhairtí a bhaineann le neamhaird a dhéanamh ar an gcomhairle seo agus 2) an méid ama a theastaíonn uait chun Django 1.3 a rith chun na sonraí dul in éag nó go mbeidh siad neamhábhartha.
Seiceáil sláine sonraí
contrib.sessionsIarmhairtí: Déanfar an t-úsáideoir logáil amach, agus caillfear sonraí seisiúin.
Tréimhse ama: Sainmhínithe ag:setting: SESSION_COOKIE_AGE.
Hash athshocraithe pasfhocal
contrib.authIarmhairtí: Ní oibreoidh naisc athshocraithe pasfhocal ó roimh an uasghrádú.
Tréimhse ama: Sainmhínithe ag
PASSWORD_RESET_TIMEOUT_DAYS.
Hais a bhaineann le foirmeacha: tá saolré i bhfad níos giorra acu seo agus níl siad ábhartha ach amháin don fhuinneog ghairid ina bhféadfadh úsáideoir foirm arna giniúint ag an gcás Django réamh-uasghrádaithe a líonadh agus iarracht a dhéanamh í a chur isteach sa chás uasghrádaithe Django:
Foirm hash slándála
contrib.commentsIarmhairtí: Feicfidh an t-úsáideoir an earráid bailíochtaithe “Theip ar hash slándála.”
Tréimhse ama: An méid ama a bhfuil tú ag súil go dtógfaidh úsáideoirí foirmeacha tráchta a líonadh.
Hash slándála
FormWizardIarmhairtí: Feicfidh an t-úsáideoir earráid faoin bhfoirm atá in éag agus seolfar ar ais chuig an gcéad leathanach den draoi, ag cailleadh na sonraí a iontráiltear go dtí seo.
Tréimhse ama: An méid ama a bhfuil tú ag súil go dtógfaidh úsáideoirí na foirmeacha atá buailte ag líonadh.
Seiceáil CSRF
Nóta: Is fallback Django 1.1 é seo i ndáiríre, ní Django 1.2, agus ní bhaineann sé ach amháin má tá tú ag uasghrádú ó 1.1.
Iarmhairtí: Feicfidh an t-úsáideoir earráid 403 le haon fhoirm POST faoi chosaint CSRF.
Tréimhse ama: An méid ama a bhfuil súil agat leis an úsáideoir a ghlacadh chun foirmeacha den sórt sin a líonadh.
Seicheamh uasghrádaithe pasfhocal úsáideora
contrib.authIarmhairtí: Déanfar pasfhocal gach úsáideora a nuashonrú go hash pasfhocal níos láidre nuair a bheidh sé scríofa chuig an mbunachar sonraí i 1.4. Ciallaíonn sé seo má dhéanann tú uasghrádú go 1.4 agus ansin caithfidh tú íosghrádú go 1.3, ní bheidh leagan 1.3 in ann na pasfhocail nuashonraithe a léamh.
Leigheas: Socraigh: Socrú: PASSWORD_HASHERS chun do hashing pasfhocal bunaidh a úsáid nuair a dhéanann tú uasghrádú ar dtús go 1.4. Tar éis duit a dhearbhú go n-oibríonn d'aip go maith le Django 1.4 agus ní bheidh ort rolladh ar ais go 1.3, cumasaigh na hashes pasfhocal nua.
django.contrib.flatpagesLink to this heading
Ag tosú i 1.4, ní chuireann an:class: ~django.contrib.flatpages.middleware.flatPageFallBackMiddleware ach slash rianaithe agus atreoraíonn sé má thagraíonn an URL mar thoradh air sin do leathanach cothrom atá ann cheana. Mar shampla, iarraidh /notaflatpageoravalidurl i leagan roimhe seo, atreoródh sé chuig /notaflatpageoravalidurl/, a d'ardódh 404 ina dhiaidh sin. Ag iarraidh /notaflatpageoravalidurl anois ardófar 404 láithreach.
Chomh maith leis sin, tá athatreoruithe ar ais ag flatpages buan anois (le 301 cód stádais), chun iompraíocht: class: ~django.middleware.common.commonMiddleware a mheaitseáil.
Sraitheadh de:class: ~datetime.datetime agus:class: ~datetime.timeLink to this heading
Mar thoradh ar thacaíocht crios ama, agus de réir sonraíocht ECMA-262, rinneamar athruithe ar an serializer JSON:
Cuimsíonn sé an crios ama le haghaidh rudaí dáta-am feasacha. Ardaíonn sé eisceacht maidir le rudaí ama feasacha.
Cuimsíonn sé milleasoicind le haghaidh rudaí dáta agus ama. Tá roinnt caillteanas cruinneas ann fós, toisc go stórálann Python micrea-soicind (6 dhigit) agus ní thacaíonn JSON ach le milleasoicind (3 dhigit). Mar sin féin, tá sé níos fearr ná microsoicind a dhiúscairt go hiomlán.
D'athraíomar an serializer XML chun an formáid ISO8601 a úsáid le haghaidh dáta-amanna. Úsáidtear an litir T ``chun an chuid dáta a scaradh ón gcuid ama, in ionad spás. Tá faisnéis crios ama san áireamh sa fhormáid ``[+-] HH:MM`.
Cé go n-úsáideann na sraitheoirí na formáidí nua seo anois agus iad ag cruthú daingneáin, is féidir leo daingneáin a úsáideann an seanfhormáid a luchtú fós.
Athraíodh supports_timezone go False do SQLiteLink to this heading
Ba é True an ghné bhunachar sonraí supports_timezone do SQLite. Go deimhin, má shábháil tú réad am dáta feasach, stóráil SQLite teaghrán a chuimsigh fritháireamh UTC. Mar sin féin, rinneadh neamhaird den fhritháireamh seo agus an luach á luchtú ar ais ón mbunachar sonraí, rud a d'fhéadfadh na sonraí a éilliú.
I gcomhthéacs tacaíochta crios ama, athraíodh an bratach seo go False, agus stóráiltear amanna dáta anois gan faisnéis crios ama i SQLite. Nuair: Setting: Is é USE_TZ False`, má dhéanann tú iarracht réad dáta-ama feasach a shábháil, ardaíonn Django eisceacht.
MySQLDB-eisceachtaí sonrachaLink to this heading
D'ardaigh cúltaca MySQL go stairiúil MySQLDB.OperationalError nuair a spreag ceist eisceacht. Tá an fabht seo socraithe againn, agus argaimid anois:exc: django.db.databaseError ina ionad. Má bhí tú ag tástáil le haghaidh MySQLDB.OperationalError`, beidh ort do chlásal ``except a nuashonrú.
Suíomh snáithe nasc bunachar sonraíLink to this heading
Bhí rudaí DatabaseWrapper` (ie na rudaí nasc dá dtagraíonn django.db.connection agus django.db.connexions ["some_alias"] ``) a bhí snáith-áitiúil. Is rudaí domhanda iad anois d'fhonn iad a roinnt idir snáitheanna iolracha. Cé go bhfuil na rudaí ceangail aonair domhanda anois, tá an foclóir ``django.db.connections` a thagraíonn na rudaí sin fós snáithe áitiúil. Dá bhrí sin mura n-úsáideann tú ach an ORM nó ``DatabaseWrapper.cursor () ansin tá an t-iompar fós mar an gcéanna le roimhe seo. Tabhair faoi deara, áfach, nach dtagraíonn django.db.connection` go díreach don réad réamhshocraithe DatabaseWrapper níos mó agus gur seachfhreastalaí é anois chun rochtain a fháil ar thréithe an réada sin. Más gá duit rochtain a fháil ar an réad iarbhír DatabaseWrapper, bain úsáid as django.db.connexions [DEFAULT_DB_ALIAS] ina ionad.
Mar chuid den athrú seo, cumasaítear gach nasc bunúsach SQLite anois le haghaidh comhroinnt snáithe féideartha (tríd an tréith Check_SAME_Thread=False a rith le pysqlite ``). Caomhníonn ``DatabaseWrapper an t-iompar roimhe seo, áfach, trí chomhroinnt snáithe a dhíchumasú de réir réamhshocraithe, mar sin ní dhéanann sé difear d'aon chód atá ann cheana atá ag brath amháin ar an ORM nó ar`` DatabaseWrapper.cursor () ``.
Faoi dheireadh, cé go bhfuil sé indéanta anois naisc a rith idir snáitheanna, ní dhéanann Django aon iarracht rochtain ar an gcúltaca bunúsach a shioncronú. Sainmhínítear iompar comhréireachta ag an gcur chun feidhme cúltaca bunúsach. Seiceáil a gcáipéisíocht le haghaidh sonraí.
Socruithe `IGNORABLE_404_STARTS agus IGNORABLE_404_ENDSLink to this heading
Go dtí Django 1.3, bhí sé in ann roinnt URLanna a eisiamh ó Django's:doc: 404 tuairisciú earráid trí réamhréamhacha a chur le IGNORABLE_404_STARTS agus iarmhairtí le ``IGNORABLE_404_ENDS``</howto/error-reporting>.
I Django 1.4, cuirtear an dá shocrú seo in ionad:setting: IGNORABLE_404_URLS, ar liosta de nathanna rialta tiomsaithe é. Ní sheolfaidh Django ríomhphost le haghaidh earráidí 404 ar URLanna a mheaitseálann le haon cheann acu.
Ina theannta sin, bhí roinnt luachanna réamhshocraithe a bhí sách treallach ag na socruithe roimhe seo:
IGNORABLE_404_STARTS = ("/cgi-bin/", "/_vti_bin", "/_vti_inf")
IGNORABLE_404_ENDS = (
"mail.pl",
"mailform.pl",
"mail.cgi",
"mailform.cgi",
"favicon.ico",
".php",
)
Ní ról Django é cinneadh a dhéanamh an bhfuil rannán /cgi-bin/ oidhreachta nó favicon.ic` ag do shuíomh Gréasáin. Mar thoradh air sin, tá na luachanna réamhshocraithe de:setting: `IGNORABLE_404_URLS`, ``IGNORABLE_404_STARTS, agus IGNORABLE_404_ENDS folamh anois.
Má tá IGNORABLE_404_STARTS nó IGNORABLE_404_ENDS saincheaptha agat, nó más mian leat an seanluach réamhshocraithe a choinneáil, ba cheart duit na línte seo a leanas a chur i do chomhad socruithe:
import re
IGNORABLE_404_URLS = (
# for each <prefix> in IGNORABLE_404_STARTS
re.compile(r"^<prefix>"),
# for each <suffix> in IGNORABLE_404_ENDS
re.compile(r"<suffix>$"),
)
Ná déan dearmad éalú le carachtair a bhfuil brí speisialta acu i léiriú rialta, mar shampla tréimhsí.
Leathnaithe cosaint CSRF go PUT agus DELETELink to this heading
Roimhe seo, thug Django's:doc: Cosaint CSRF `cosaint ar fáil ach amháin i gcoinne iarratais POST. </ref/csrf/> Ós rud é go bhfuil úsáid modhanna PUT agus DELETE i bhfeidhmchláir AJAX ag éirí níos coitianta, déanaimid cosaint anois gach modh nach bhfuil sainmhínithe mar shábháilte ag: rfc: `2616 - ie, déanaimid díolmhaithe GET, HEAD, OPTIONS agus TRACE, agus cuirimid cosaint i bhfeidhm ar gach rud eile.
<csrf-ajax>Má tá modhanna PUT nó DELETE á úsáid agat in iarratais AJAX, féach le do thoil: ref: `treoracha maidir le AJAX agus CSRF a úsáid `.
Glacann amharc athshocraithe pasfhocal anois le subject_template_nameLink to this heading
Glacann an radharc password_reset i django.contrib.auth` anois le paraiméadar subject_template_name, a chuirtear chuig an bhfoirm sábhála pasfhocal mar argóint eochairfhocal. Má tá an dearcadh seo á úsáid agat le foirm athshocraithe pasfhocal saincheaptha, ansin beidh ort a chinntiú go nglacann modh ``save () `d'fhoirm leis an argóint eochairfhocal seo.
django.core.template_loadersLink to this heading
Ba ailias é seo ar django.template.loader ó 2005, agus tá sé bainte againn gan rabhadh a astú mar gheall ar fhad an díghníomhaíochta. Má thagraíonn do chód seo fós, bain úsáid as django.template.loader ina ionad.
Django.db.models.fields.urlfield.verify_existsLink to this heading
Baineadh an fheidhmiúlacht seo mar gheall ar shaincheisteanna feidhmíochta agus slándála nach féidir Ba chóir aon úsáid atá ann cheana de verify_exists` a bhaint.
Django.core.files.storage.storage.openLink to this heading
Úsáidtear an modh oscailte` den rang Stórála bonn chun paraiméadar doiléir mixin a thógáil a ligean duit bunaicmí an réada comhaid a fhilleadh a athrú go dinimiciúil. Tá sé seo bainte. Sa chás annamh a bhraith tú ar an bparaiméadar mixin, is féidir leat an rud céanna a bhaint amach go héasca tríd an modh `oscailt ``a shárú, mar seo:
from django.core.files import File
from django.core.files.storage import FileSystemStorage
class Spam(File):
"""
Spam, spam, spam, spam and spam.
"""
def ham(self):
return "eggs"
class SpamStorage(FileSystemStorage):
"""
A custom file storage backend.
"""
def open(self, name, mode="rb"):
return Spam(open(self.path(name), mode))
Úsáideann deserializer YAML anois ``yaml.safe_load ``Link to this heading
Tá yaml.load in ann aon réad Python a thógáil, a d'fhéadfadh forghníomhú cód treallach a spreagadh má phróiseálann tú doiciméad YAML a thagann ó fhoinse neamhiontaofa. Níl an ghné seo riachtanach le haghaidh deserializer YAML Django, a bpríomhúsáid ná daingneáin atá comhdhéanta de rudaí simplí a luchtú. Cé gur sonraí iontaofa iad daingneáin, úsáideann an deserializer YAML anois ``yaml.safe_load ``le haghaidh slándála breise.
Ní éalaíonn an scagair:tFilter: urlize gach URL a thuilleadhLink to this heading
Nuair a bhíonn seicheamh %xx i URL, áit a bhfuil dhá dhigit heicseachadúil iad xx, glacann: tfilter: urlize anois go bhfuil an URL éalaithe cheana féin agus nach gcuireann sé URL ag éalú arís. Tá sé seo mícheart do URLanna a bhfuil seicheamh %xx ag a bhfoirm neamh-luaite, ach ní dócha go dtarlóidh URLanna den sórt sin san fhiáin, toisc go ndéanfadh siad mearbhall ar bhrabhsálaithe freisin.
AssertTemplateUsed agus AssertTemplateNoTused mar bhainisteoir comhthéacsLink to this heading
Is féidir anois a sheiceáil an úsáideadh teimpléad laistigh de bhloc cód le: meth: ~django.test.simpletestcase.assertTemplateUsed agus:meth: ~django.test.simpletestcase.assertTemplateNotUsed. Agus is féidir iad a úsáid mar bhainisteoir comhthéacs:
with self.assertTemplateUsed("index.html"):
render_to_string("index.html")
with self.assertTemplateNotUsed("base.html"):
render_to_string("index.html")
<assertions>Féach in:ref: `dearbhú doiciméadú `le haghaidh tuilleadh eolais.
Naisc bhunachar sonraí tar éis an tsraith tástálaLink to this heading
Ní dhéanfaidh an reathaí tástála réamhshocraithe na naisc bhunachar sonraí a athchóiriú a thuilleadh tar éis na tástálacha a chur i gcrích. Cuireann sé seo cosc ar an mbunachar sonraí táirgeachta a bheith faoi lé snáitheanna féideartha a bheadh fós ar siúl agus iarracht a dhéanamh naisc nua a chruthú.
Má bhí do chód ag brath ar naisc leis an mbunachar sonraí táirgeachta atá á chruthú tar éis tástálacha a fhorghníomhú, ansin is féidir leat an t-iompar roimhe seo a chur ar ais trí “DjangoTestRunner” a fho-aicmiú agus a mhodh `teardown_databases () `a shárú.
<help>Aschur de:djadmin: `cabhair manage.py `Link to this heading
: djadmin: `manage.py cabhair <help>`grúpaíonn orduithe atá ar fáil anois de réir feidhmchláir. Má bhí tú ag brath ar aschur an ordaithe seo - má dhéantar é a pháirseáil, mar shampla - ansin beidh ort do chód a nuashonrú. <help>Chun liosta de na horduithe bainistíochta go léir atá ar fáil a fháil i script, bain úsáid as: djadmin: `manage.py help --orders `ina ionad.
Clib teimpléad ``leathnaíon`Link to this heading
Roimhe seo, d'úsáid an clibe:ttag: extens modh buggy chun argóintí a pháirseáil, rud a d'fhéadfadh a bheith mar thoradh air go bhféadfadh sé argóint a mheas go míearrach mar shreang litriúil nuair nach raibh sé. Úsáideann sé anois parser.compile_filter, cosúil le clibeanna eile.
Níl inmheánacha an chlib mar chuid den API cobhsaí oifigiúil, ach ar mhaithe le nochtadh iomlán, an ExtendsNode. Tá athrú tagtha ar an sainmhíniú __init__`, rud a d'fhéadfadh aon chlibeanna saincheaptha a úsáideann an rang seo a bhriseadh.
Ní oibríonn luchtú roinnt daingneáin neamhiomLink to this heading
Roimh 1.4, cuireadh luach réamhshocraithe isteach le haghaidh réada daingneáin a raibh dáta nó dáta dáta ar leith in easnamh orthu nuair a socraíodh auto_now nó auto_now_add don réimse. Ba rud é seo nár cheart a bheith ag obair, agus i 1.4 theipfidh ar lódáil daingneáin neamhiomlána den sórt sin. Toisc gur allmhairí amh iad daingneáin, ba cheart go sonrófaí go sainráite iad na luachanna réimse uile, beag beann ar na roghanna allamuigh ar an tsamhail.
Multithreading Freastalaí ForbarthaLink to this heading
Tá an freastalaí forbartha ilshreathaithe anois de réir réamhshocraithe. Úsáid an rogha:option: runserver --nothreading chun úsáid snáithe a dhíchumasú sa fhreastalaí forbartha:
django-admin.py runserver --nothreading
Díchumasaithe tréithe i marcáil nuair a shocraítear modh sábháLink to this heading
Roimh Django 1.4, cuireadh tréithe san áireamh in aon aschur marcála beag beann ar shuíomh modh sábháilte an scagaire. Le leagan> 2.1 de leabharlann Python-Markdown, cuireadh rogha enable_attributs leis. Nuair a chuirtear an argóint sábháilte chuig an scagaire marcdown, socraítear na roghanna safe_mode=true agus ``enable_attributes=false ``araon. Má úsáideann tú leagan de leabharlann Python-Markdown níos lú ná 2.1, eisítear rabhadh go bhfuil an t-aschur neamhchinnte.
Filleann FormMixin get_initial foclóir sonrach don eochtLink to this heading
I Django 1.3, bhí an modh get_initial den range:class: django.views.generic.edit.formMixin ag tabhairt ar ais an bhfoclóir ranga initial. Socraíodh é seo chun cóip den fhoclóir seo a thabhairt ar ais, mar sin is féidir le cásanna foirme a gcuid sonraí tosaigh a mhodhnú gan dul isteach leis an athróg aicme.
Gnéithe atá díscríofa i 1.4Link to this heading
Seanstíleanna chun glaoch ar cache_page maisitheoirLink to this heading
Tá roinnt bealaí oidhreachta chun glaoch a ghlao:func: ~django.views.decorators.cache.cache_page a dhíchur. Féach an doiciméadú le do thoil maidir leis an mbealach ceart chun an maisitheoir seo a úsáid.
Tacaíocht do leaganacha PostgreSQL níos sine ná 8.2Link to this heading
Thit Django 1.3 tacaíocht do leaganacha PostgreSQL níos sine ná 8.0, agus mholamar leagan níos déanaí a úsáid mar gheall ar fheabhsuithe feidhmíochta agus, níos tábhachtaí fós, bhí deireadh na dtréimhsí tacaíochta suas sruth do 8.0 agus 8.1 gar (Samhain 2010).
Tógann Django 1.4 an beartas sin níos faide agus leagann sé 8.2 mar an leagan íosta PostgreSQL a thacaíonn sé go hoifigiúil.
Déantar eisceachtaí iarratais logáilte anois iLink to this heading
Nuair a chuireamar leis: doc: tacaíocht logaithe' i Django i 1.3, aistríodh an tacaíocht ríomhphoist earráid riaracháin isteach in:class: `django.utils.log.adminemailHandler </topics/logging/>, ceangailte leis an logger 'django.request'`. D'fhonn iompar seanbhunaithe ríomhphoist earráide a choinneáil, níor glaoíodh ar an logálaí ``'django.request'` ach nuair:setting: `DEBUG` `False.
Chun solúbthacht logála earráide le haghaidh iarratais a mhéadú, tugtar an logálaí ``django.request'` anois beann ar an luach de:setting: DEBUG, agus tá an comhad socruithe réamhshocraithe do thionscadail nua anois scagaire ar leithligh ceangailte la:class: Django.utils.log.adminemailHandler chun ríomhphoist earráide riaracháin a chosc i mód DEBUG:
LOGGING = {
# ...
"filters": {
"require_debug_false": {
"()": "django.utils.log.RequireDebugFalse",
}
},
"handlers": {
"mail_admins": {
"level": "ERROR",
"filters": ["require_debug_false"],
"class": "django.utils.log.AdminEmailHandler",
}
},
}
Má cruthaíodh do thionscadal roimh an athrú seo, ní chuimsíonn do shuíomh: 'LOGGING' an scagaire nua seo. D'fhonn comhoiriúnacht cúil a choinneáil, braithfidh Django nach bhfuil aon chuid ``filters' ``i do chumraíocht láimhseála ```mail_admins' agus cuirfidh sé an scagaire seo duit go huathoibríoch agus eiseoidh sé rabhadh dí-dhíothaithe. Beidh sé seo ina rabhadh diúltaithe i Django 1.5, agus i Django 1.6 bainfear an shim comhoiriúnachta cúil go hiomlán.
Díchumasóidh aon eochair 'filters' faoin láimhseálaí ``mail_admins' an rabhadh shiam comhoiriúnachta cúil seo agus díghníomhú.
django.conf.urls.defaultsLink to this heading
Go dtí Django 1.3, bhí na feidhmeanna include () ``, `patrons (), agus url () ``, móis:data: `~django.conf.urls.handler404` agus:data: `~django.conf.urls.deftsaults lonnaithe i modúl django.conf.urls.deftsaults.
I Django 1.4, tá siad ina gcónaí in:mod: django.conf.urls.
django.contrib.databrowseLink to this heading
Níor chonaic Databrowse forbairt ghníomhach le tamall anuas, agus ní thaispeánann sé seo aon chomhartha athraithe. Bhí moladh ann maidir le `tionscadal GSOC `_ chun feidhmiúlacht databrowse a chomhtháthú sa riarachán, ach níor rinneadh aon dul chun cinn. Cé go bhfuil Databrowse imithe, is féidir feabhsú ar ``django.contrib.admin ``a sholáthraíonn tacar gné den chineál céanna fós.
Tá an cód a chumhachtaíonn Databrowse ceadúnaithe faoi na téarmaí céanna le Django féin, mar sin tá sé ar fáil le duine aonair nó grúpa é a ghlacadh mar thionscadal tríú páirtí.
``django.core.bainist.setup_environment ``Link to this heading
Athraigh an fheidhm seo sys.path go sealadach d'fhonn an t-eolaire tuismitheora “tionscadal” a dhéanamh in-iompórtáilte faoin sean-leagan amach flat:djadmin: startproject. Tá an fheidhm seo imithe anois, mar ní theastaíonn a réamhshocruithe cosáin a thuilleadh leis an manage.py nua agus leagan amach tionscadail réamhshocraithe.
Níor doiciméadaíodh an fheidhm seo riamh ná mar chuid den API poiblí, ach moladh go forleathan é le húsáid chun “timpeallacht Django” a bhunú do script úsáideora. Ba chóir na húsáidí seo a chur in ionad trí athróg timpeallachta: envvar: DJANGO_SETTINGS_MODULE a shocrú nó úsáid: func: django.conf.settings.configure.
django.core.bainistéireach.execute_managerLink to this heading
D'úsáid manage.py` an fheidhm seo roimhe seo chun ordú bainistíochta a fhorghníomhú. Tá sé comhionann le django.core.management.execute_from_command_line, ach amháin go nglaonn sé ar setup_environment ``ar dtús, atá díscoite anois. Dá bhrí sin, tá `execute_manager díluanta freisin; is féidir execute_from_command_line a úsáid ina ionad. Níl aon cheann de na feidhmeanna seo a dhoiciméadú mar chuid den API poiblí, ach teastaíonn cosán díréireachta mar gheall ar úsáid i gcomhaid manage.py atá ann cheana.
is_safe agus needs_autoescape tréithe scagairí teimpléadLink to this heading
Sainmhíníonn dhá bhratach, is_safe agus needs_autoescape, conas a idirghníomhaíonn gach scagaire teimpléad le hiompar éalaithe uathoibríoch Django. Ba ghnách iad a bheith ina thréithe den fheidhm scagaire:
@register.filter
def noop(value):
return value
noop.is_safe = True
<django.template.defaultfilters.stringfilter>Mar sin féin, ba chúis leis an teicníc seo roinnt fadhbanna i dteannta le maisitheoirí, go háirithe: func: @stringfilter. <django.template.Library.filter>Anois, is argóintí eochairfhocal iad na bratacha de:meth: @register .filter:
@register.filter(is_safe=True)
def noop(value):
return value
<filters-auto-escaping>Féach: tagairt: `scagairí agus éalú uathoibríoch `le haghaidh tuilleadh faisnéise.
Leathnú cárta fiáin ar ainmneacha iarratais i INSTALLED_APPSLink to this heading
Go dtí Django 1.3, ghlac: INSTALLED_APPS le cártaí fiáine in ainmneacha iarratais, cosúil le django.contrib.*. <package>Rinneadh an leathnú trí chur i bhfeidhm bunaithe ar chóras comhaid “ó allmhairiú*”. Ar an drochuair, ní féidir é seo a dhéanamh go hiontaofa.
Ní dhoiciméadaíodh an t-iompar seo riamh. Ós rud é go bhfuil sé neamhpythonic, baineadh é i Django 1.4. Má bhraith tú air, ní mór duit do chomhad socruithe a chur in eagar chun d'iarratais go léir a liostáil go sainráite.
Athainmnigh HttpRequest.Raw_Post_Data go HttpRequest.bodyLink to this heading
Ainmníodh an tréith seo go mearbhall HttpRequest.raw_post_data ``, ach chuir sé ar fáil i ndáiríre corp an iarratais HTTP. Athainmníodh é go `HttpRequest.body ``, agus tá ``HttpRequest.Raw_Post_Data díluaite.
Socrú fabht ``django.contrib.sitemaps ``le himpleachtaí feidhmíochta féidearthaLink to this heading
I leaganacha roimhe seo, rinneadh réada Paginator a úsáideadh i ranganna léarscáileanna suímh a thaisceadh, rud a d'fhéadfadh seanléarscáileanna láithreáin a bheith mar thoradh air. Bhaineamar an taisceadh as, mar sin cruthaíonn gach iarratas chuig léarscáil an tsuímh réad Paginator nua agus glaonn sé an modh items() den fo-aicme léarscáil an láithreáin. Ag brath ar a bhfuil á dhéanamh ag do mhodh míreanna(), d'fhéadfadh tionchar diúltach a bheith aige seo ar fheidhmíocht. Chun an tionchar feidhmíochta a mhaolú, smaoinigh ar an creat taisce a úsáid laistigh d'fho-aicme Mapa Láithreáin.
Leaganacha de Python-Markdown níos luaithe ná 2.1Link to this heading
Ní thacaíonn leaganacha de Python-Markdown níos luaithe ná 2.1 leis an rogha tréithe a dhíchumasú. Mar shaincheist slándála, ní thacóidh an aip contrib marcála le leaganacha níos luaithe den leabharlann seo i 1.5 faoi amlíne díscrúdaithe luathaithe.
Socrú
COMMENTS_BANNED_USERS_GROUPLink to this heading#Tacaigh tuairimí Django go stairiúil le tuairimí grúpa úsáideoirí speisialta a eisiamh, ach níor dhoiciméadaíomar an ghné riamh i gceart agus níor fhorfheidhmigh muid an eisiamh i gcodanna eile den aip mar na clibeanna teimpléid. Chun an fhadhb seo a shocrú, bhain muid an cód ón rang beatha.
Má tá tú ag brath ar an ngné agus má theastaíonn uait an sean-iompar a chur ar ais, bain úsáid as bainisteoir samhail tráchta saincheaptha chun an grúpa úsáideoirí a eisiamh, mar seo:
Sábháil an bainisteoir samhail seo i d'aip tráchta saincheaptha (m.sh., i my_comments_app/managers.py`) agus cuir do mhúnla aip trácht saincheaptha leis: