Nótaí scaoilte Django 1.6Link to this heading
6 Samhain, 2013
Fáilte go dtí Django 1.6!
Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-1.6>, chomh maith le roinnt: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-1.6> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.5 nó leaganacha níos sine. <deprecated-features-1.6>Tá roinnt gnéithe titim againn freisin, atá mionsonraithe in:ref: ár bplean díghabhála <deprecation-removed-in-1.6>, agus chuireamaire:ref: tús leis an bpróiseas díghabhála do roinnt gnéithe.
Comhoiriúnacht PythonLink to this heading
Éilíonn Django 1.6, cosúil le Django 1.5, Python 2.6.5 nó os a chionn. Tacaítear le Python 3 go hoifigiúil freisin. Molaimid** go hard** an mionscaoileadh is déanaí do gach sraith Python tacaithe (2.6.X, 2.7.X, 3.2.X, agus 3.3.X).
Beidh Django 1.6 an tsraith scaoilte deiridh chun tacú le Python 2.6; ag tosú le Django 1.7, is é 2.7 an leagan Python íosta a thacaítear.
Ní thacaítear le Python 3.4, ach cuirfear tacaíocht leis i Django 1.7.
Cad atá nua i Django 1.6Link to this heading
Teimpléid tionscadail réamhshocraithe agus aipLink to this heading
Tá na teimpléid réamhshocraithe a úsáideann: djadmin: startproject agus:djadmin: startapp simplithe agus nuachóirithe. Tá an: doc: admin </ref/contrib/admin/index> cumasaithe anois de réir réamhshocraithe i dtionscadail nua; níl an creat:doc: `sites</ref/contrib/sites> `a thuilleadh. :ref: Tá `cosc clickjacking <clickjacking-prevention>`ar siúl anois agus tá an bunachar sonraí réamhshocraithe go SQLite.
<custom-app-and-project-templates>Mura n-oireann na teimpléid réamhshocraithe do do chlas, is féidir leat: ref: `teimpléid tionscadail agus aipeanna saincheaptha `a úsáid.
Bainistíocht idirbheart níos fearrLink to this heading
Rinneadh athchóiriú ar bhainistíocht idirbheart Django. Tá autocommit ar leibhéal bunachar sonraí casaithe air anois de réir réamhshocraithe. Fágann sé seo láimhseáil idirbheart níos folláine agus ba cheart go bhfeabhsó Rinneadh na APIs atá ann cheana a dhíchur, agus tugadh APIs nua isteach, mar a thuairiscítear in:doc: doiciméid bainistíochta idirbhearta </topics/db/transactions>.
Nasc bunachar sonraí leanúnachaLink to this heading
Tacaíonn Django anois leis an nasc bunachar sonraí céanna a athúsáid le haghaidh roinnt iarratais. Seachnaíonn sé seo an lasbhreas a bhaineann le nasc a athbhunú ag tús gach iarratais. Le haghaidh comhoiriúnacht ar ais, tá an ghné seo díchumasaithe de réir réamhshocraithe Féach: ref: persistent-database-nastions le haghaidh sonraí.
Tástálacha a fháil in aon mhodúl tástálaLink to this heading
Seolann Django 1.6 le rádálaí tástála nua a cheadaíonn níos mó solúbthachta i suíomh na dtástálacha. Ní bhfuair an rádálaí roimhe seo (Django.test.simple.DjangoTestSuiterunner`) tástálacha ach sna modúil models.py agus tests.py de phacáiste Python in:setting: INSTALLED_APPS.
Úsáideann an rádálaí nua (Django.Test.Runner.DiscoverRunner) na gnéithe fionnachtana tástála atá tógtha i unittest2` (an leagan de unittest sa leabharlann caighdeánach Python 2.7+, agus curtha le Django). Le fionnachtain tástála, is féidir tástálacha a shuíomh in aon mhodúl a mheaitseálann a n-ainm leis an bpatrún test*.py.
Ina theannta sin, cuireadh na lipéid tástála ar fáil do . Caithfidh tástáil /manage.py chun tástálacha sonracha a ainmniú le reáchtáil caithfidh cosáin iomlána poncaí Python (nó cosáin eolaire) a bheith anois, seachas ``Applabel.TestCase.test_METHOD_name bréag-bhealaí. Ligeann sé seo tástálacha a reáchtáil atá suite in áit ar bith i do bhunachar cóid, seachas in: setting: INSTALLED_APPS amháin. Le haghaidh tuilleadh sonraí, féach:doc: `/topics/tástáil/innéacs `.
<new-test-runner>Tá an t-athrú seo chomhoiriúnach ar chúl; féach na:ref: `nótaí neamh-inchomhoiriúnachta ar ais `.
Comhiomlánú feasach ar chrios amaLink to this heading
</topics/i18n/timezones> <django.db.models.query.QuerySet.dates>Níor oibrigh an tacaíocht do: doc: criosanna ama' a tugadh isteach i Django 1.4 go maith le: meth: `QuerySet.dates () `: rinneadh comhiomlánú i gcónaí i UTC. Ardaíodh an teorannú seo i Django 1.6. Úsáid: Meth: `QuerySet.DateTimes () `chun comhiomlánú feasach ar chrios ama a a: class: `~django.db.models.DateTime <django.db.models.query.QuerySet.datetimes>Field.
Tacaíocht do phointí sábhála i SQLiteLink to this heading
<savepoints-in-sqlite>Cuireann Django 1.6 tacaíocht le haghaidh pointí sábhála i SQLite, le roinnt: ref: `teorainneacha `.
Réimse samhail BinaryfieldLink to this heading
Ceadaíonn réimse samhail nua:class: Django.db.Models.BinaryField sonraí dénártha amh a stóráil sa bhunachar sonraí.
Giuirléidí foirm GeodJangoLink to this heading
Soláthraíonn GeodJango anois:doc: `réimsí foirm agus giuirléid' dá réimsí geo-speisialaithe. </ref/contrib/gis/forms-api> Tá siad bunaithe ar OpenLayers de réir réamhshocraithe, ach is féidir iad a shaincheapadh chun aon creat JS eile a úsáid.
Cuireadh ordú bainistíochta “seiceáil” leis chun comhoiriúnacht a fhíorLink to this heading
A: DjaDmin: Cuireadh ordú bainistíochta 'check' leis, rud a chuireann ar chumas duit a fhíorú an bhfuil do chumraíocht reatha (dírithe ar shocruithe faoi láthair) comhoiriúnach leis an leagan reatha de Django.
<django.db.models.Model.save () >:meth: Athraigh algartam `Model.save ()Link to this heading
Déanann an modh: Meth: Model.save () iarracht anois ``<django.db.models.Model.save () > UPDATE` an bunachar sonraí a dhéanamh go díreach má tá príomhluach ag an gcás. Roimhe seo rinneadh SELECT chun a chinneadh an raibh gá le UPDATE nó INSERT. Níl ach ceist amháin ag teastáil ón algartam nua chun sraith atá ann cheana a nuashonrú agus bhí dhá cheann ag teastáil ar an sean- <django.db.models.Model.save () >Féach: Meth: `Model.save () `le haghaidh tuilleadh sonraí.
I roinnt cásanna neamhchoitianta ní thuairiscíonn an bunachar sonraí gur aimsíodh sraith mheaitseála nuair a dhéantar UPDATE. Sampla is ea an truicear PostgreSQL ON UPDATE a fhilleann NULL. I gcásanna den sórt sin is féidir bratach: attr: django.db.models.options.select_on_save a shocrú chun sábháil a chur i bhfeidhm chun an sean-algartam a úsáid.
MionghnéitheLink to this heading
Is féidir le cúltaca fíordheimhnithe
Ceaduitheada ardú chun teip ar an slabhra fíordheimhnithe láithreach.Is féidir an bhratach HTTPONLY a shocrú ar an bhfianán CSRF le:setting: CSRF_COOKIE_HTTPONLY.
Seiceálann an ``assertQuerySetEqual () ``anois ar ordú neamhshainithe agus ardaíonn sé: exc: ValueError má fheictear ordú neamhshainithe. Feictear go bhfuil an t-ordú neamhshainithe mura n-ordaítear an ``QuerySet` a thugtar agus tá níos mó ná luach ordaithe amháin le comparáid a dhéanamh ina gcoinne.
Cuireadh leis: Meth: ~django.db.models.query.queryset.earliest le haghaidh siméadracht le:meth: ~django.db.models.query.queryset.latest.
Chomh maith le:lookup: year, :lookup: month agus:lookup: day, tacaíonn an ORM anois:lookup: hour, :lookup: nóiméad agus:lookup: soicin cuardaigh.
Fillteann Django anois gach eisceacht: pep: 249.
Úsáideann na giuirléidí réamhshocraithe daga:class: ~django.forms.emailField, :class: ~django.forms.URLField, :class: ~django.forms.IntegerField, :class: ~django.forms.floatfield agus:class: ~django.forms.decimalfield na tréithe nua cineál atá ar fáil i HTML5 (
type = 'email'`, `type = 'url ``, `type = 'url, type = 'uimhre'`). Tabhair faoi deara, mar gheall ar thacaíocht neamhréitiúil don chineál ionchuir ``uimhir ``le huimhreacha logánaithe i mbrabhsálaithe reatha, ní úsáideann Django é ach nuair nach bhfuil réimsí uimhriúla logánaithe.Is féidir an argóint
uimhred':ref: `aistriúcháin iolrach leisciúil <lazy-plural-translations>`a sholáthar ag am aistriúcháin seachas ag am sainmhínithe.Maidir le horduithe bainistíochta saincheaptha: Déantar fíorú ar láithreacht socruithe bailí in orduithe a iarrann é tríd an rogha inmheánach
BaseCommand.CAN_IMPORT_SETTINGS` a úsáid go neamhspleách ó láimhseáil an áitiúil ba chóir a bheith gníomhach le linn forghníomhú an ordaithe. Is féidir leis an rogha inmheánach nua ``BaseCommand.leave_locale_alonetionchar a imirt ar an dara ceann anois. Féach:ref: management-commands-and-locales le haghaidh tuilleadh sonraí.Tá an: Attr: ~django.views.generic.edit.deletionMixin.success_URL o:class: ~django.views.generic.edit.deletionMixin idirphóilte anois le
__dict__a object`.HttpResponseRedirectandHttpResponsePermanentRedirectnow provide anurlattribute (equivalent to the URL the response will redirect to).Úsáideann cúltaca taisce
MemcachedCachean prótacal is déanaí:mod: pickle atá ar fáil anois.Added:Class: ~django.contrib.messages.views.successMessageMixin a sholáthraíonn tréith
success_messaged'aicmí bunaithe le haghaidh: class: ~django.views.generic.edit.formView ranganna bunaithe.Cuireadh na roghanna: attr: Django.db.Models.ForeignKey.DB_Constraint agus:attr: Django.db.Models.manyTomanyField.DB_Constraint leis.
Tá an leabharlann jQuery leabaithe sa riarachán uasghrádaithe go leagan 1.9.1.
<django.contrib.syndication.Feed.get_context_data>Is féidir le fothaí sindiciúcháin (:mod: django.contrib.syndication) comhthéacs breise a chur tríd anois chun teimpléid a bheathú ag baint úsáide as glao nua: meth: `feed.get_context_data () `.
Tá <field_name>rang ```column- ``ag na colúin liosta riaracháin sa HTML ionas gur féidir ceanntásc na gcolún a stíleáil le CSS, m.sh. chun leithead colún a shocrú.
Is féidir an: Ref: `leibhéal aonrú <database-isolation-level>`a shaincheapadh faoi PostgreSQL.
Tá meas anois ag an gclib teimpléad:ttag: blocktrans
TEMPLATE_STRING_IF_INVALIDd'athróga nach bhfuil i láthair sa chomhthéacs, díreach cosúil le tógáil teimpléad eile.Cuirfidh
SimpleLazyObjects léirithe níos cabhrach i láthair anois i gcásanna dífhabhtaithe bhlaosc.Gineálach:Class: ~django.contrib.gis.db.models.geometryfield is féidir a chur in eagar anois leis an ngiuirléid OpenLayers sa riarachán.
Tá a: doc: seicliosta imscartáil sa doiciméad</howto/deployment/checklist> ú.
Fuair an t-ordú: Djadmin: diffsettings rogha
--all.Django.Forms.Fields.Field. Glaonn __init__anoissuper () ``, ag ligean do mheascáin allamuigh modhanna ``__init__ ()a chur i bhfeidhm a ghlaofar go hiontaofa.The
validate_maxparameter was added toBaseFormSetandformset_factory(), andModelFormand inline versions of the same. The behavior of validation for formsets withmax_numwas clarified. The previously undocumented behavior that hardened formsets against memory exhaustion attacks was documented, and the undocumented limit of the higher of 1000 ormax_numforms was changed so it is always 1000 more thanmax_num.Cuireadh bcryptsha256PasswordHasher` leis chun an saincheist a bhriseadh pasfhocal le bcrypt a réiteach.
Pillow is now the preferred image manipulation library to use with Django. PIL is pending deprecation (support to be removed in Django 1.8). To upgrade, you should first uninstall PIL, then install Pillow.
ModelFormaccepts several newMetaoptions.Déanfar réimsí atá san áireamh sa liosta
localized_fieldslogánaithe (trílocalizea shocrú ar an réimse foirme).Is féidir na roghanna
labels, help_texts` aguserror_messagesa úsáid chun na réimsí réamhshocraithe a shaincheapadh, féach:ref: modelforms-overriding-default-fields le haghaidh sonraí.
Glacann an argóint
roghnaíle réimsí samhlacha anois le athrinnithe athraitheacha in ionad athraitheanta liostaí nó tupáil a bheith ag teastáil.Is féidir an abairt chúis a shaincheapadh i bhfreagraí HTTP ag baint úsáidea:attr: ~django.http.httpResponse.Reason_Phrase.
Nuair a thugtar URL an chéad leathanaigh eile le haghaidh
django.contrib.auth.views.logout () ``, `django.contrib.auth.views.password_reset (), django.contrib.auth.views.password_reset_confirm () `, agusdjango.contrib.auth.views.wordpass_change (), is féidir leat ainmneacha URL a rith anois agus réiteofar iad.Sonraíonn an rogha nua:option: dumpdata --pks eochracha príomhúil na rudaí le dumpáil. Ní féidir an rogha seo a úsáid ach le samhail amháin.
Cuir modhanna
QuerySetleis: meth: ~django.db.models.query.queryset.first agus:meth: ~django.db.models.query.queryset.last ar modhanna áisiúlachta iad a thugann an chéad réad nó an rud deireanach a mheaitseálann na scagairí. Tugann sé ar aisNonemura bhfuil aon rudaí ann a mheaitseáil.ViewandRedirectViewnow support HTTPPATCHmethod.Glacann
GenericForeignKeyargóint roghnachfor_concrete_modelanois, a ligeann don réimse tagairt do mhúnlaí seachfhreastalaí nuair a shocraítear é go False. Is é an réamhshocrúTruechun an sean-iompar a choinneáil.Stórálann an
LocaleMiddlewarean teanga ghníomhach sa seisiún anois mura bhfuil sí i láthair ann. Cuireann sé seo cosc ar chaillteanas socruithe teanga tar éis sruthlú seisiúin, e.g. logáil amach.SuspiciousOperationhas been differentiated into a number of subclasses, and each will log to a matching named logger under thedjango.securitylogging hierarchy. Along with this change, ahandler400mechanism and default view are used whenever aSuspiciousOperationreaches the WSGI handler to return anHttpResponseBadRequest.Cuimsíonn an eisceacht: EXC: ~django.db.models.model.doesNotExist teachtaireacht anois a léiríonn ainm na tréithe a úsáidtear don chuardach.
Ní theastaíonn argóint eochairfhocal amháin ar a laghad ag an modh: Meth: ~django.db.models.query.queryset.get_or_create a thuilleadh.
Cuimsíonn an ranga:Class: ~Django.Test.SimpleTestCase cúntóir dearbhaithe nua chun earráidí foirmset a thástáil: ``Django.Test.SimpleTestCase.AssertFormSetError () ``.
Is féidir liosta na réimsí gaolmhara a cuireadh le a:class: ~django.db.models.query.queryset trí:meth: ~django.db.models.queryset.select_related a ghlanadh trí ``select_related (None) ``.
Is féidir na modhanna: Meth: ~django.contrib.admin.inlineModelAdmin.get_extra agus:meth: ~django.contrib.admin.inlineModelAdmin.get_max_num ar: class: ~django.contrib.admin.inlineModelAdmin a shaincheapadh chun líon breise agus uasta na bhfoirmeacha inlíne a shaincheapadh.
Tá modh a: meth: ~django.forms.formsets.baseFormSet.TOTAL_ERROR_COUNT ag Formsets anois.
ModelFormfields can now override error messages defined in model fields by using theerror_messagesargument of aField’s constructor. To take advantage of this new feature with your custom fields, see the updated recommendation for raising aValidationError.ModelAdminnow preserves filters on the list view after creating, editing or deleting an object. It's possible to restore the previous behavior of clearing filters by setting thepreserve_filtersattribute toFalse.<django.views.generic.edit.FormMixin.prefix>Cuireadh leis: Meth: FormMixin.Get_Prefix `(a fhilleann: attr: `FormMixin.Prefix<django.views.generic.edit.FormMixin.get_prefix> de réir réamhshocraithe) chun ceadú: attr: ~django.forms.form.prefix na foirme a shaincheapadh.
Is féidir le ceisteanna amha (Manager.raw () ``nó `cursor.execute ()`) an stíl pharaiméadar “pyformat” a úsáid anois, áit a dtugtar ``% (name) s'` ``sealbhóirí ionaid sa cheist agus cuirtear na paraiméadair mar fhoclóir seachas liosta (ach amháin ar SQLite). Tá sé seo indéanta le fada (ach níor thacaíodh sé go hoifigiúil) ar MySQL agus PostgreSQL, agus tá sé ar fáil anois ar Oracle freisin.
Méadaíodh 20% an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2. Ní dhéanfaidh an t-athrú comhoiriúnach ar chúl difear do phasfhocail nó ar úsáideoirí atá ann cheana a rinne fo-aicmiú
Django.contrib.auth.hashers.pbkdf2PasswordHasherchun an luach réamhshocraithe a athrú. Pasfhocal: ref: 'uasghrádófar <password-upgrades>`chun an comhaireamh athraithe nua a úsáid de réir mar is gá.
Athruithe neamh-chomhoiriúnacha ar ais i 1.6Link to this heading
Samhail nua bainistíochta idirbheartLink to this heading
Athruithe iompraíochtaLink to this heading
Tá autocommit ar leibhéal bunachar sonraí cumasaithe de réir réamhshocraithe i Django 1.6. Cé nach n-athraíonn sé seo spiorad ginearálta bainistíochta idirbheart Django, tá cúpla neamhoiriúnacht cúil ann.
Savepoints agus AssertNumqueriesLink to this heading
D'fhéadfadh ráitis bhreise a bheith mar thoradh ar na hathruithe i mbainistíocht idirbheart chun pointí sábhála a chruthú, a scaoileadh Is dóichí go dtarlóidh sé seo le SQLite, ós rud é nár thacaigh sé le pointí sábhála go dtí an scaoileadh seo.
Má theipeann ar thástálacha ag baint úsáidea:meth: ~django.test.transactionTestCase.assertNumqueries mar gheall ar líon níos airde ceisteanna ná mar a bhíothas ag súil leis, seiceáil go bhfuil baint ag na ceisteanna breise le pointí sábhála, agus coigeartaigh líon na gceisteanna a bhfuil súil leis dá réir.
Rogha Autocommit do PostgreSQLLink to this heading
I leaganacha roimhe seo, ní raibh autocommit ar leibhéal bunachar sonraí ach rogha do PostgreSQL, agus cuireadh faoi dhíchumasú é de réir réamhshocraithe. Déantar neamhaird ar an rogha seo anois agus is féidir é a bhaint.
Rathóir tástála nuaLink to this heading
D'fhonn comhsheasmhacht níos mó a choinneáil le modúl unittest` Python, ní thacaíonn an reathóir tástála nua (Django.Test.Runner.DiscoverRunner) go huathoibríoch le roinnt cineálacha tástálacha a thacaigh an rádálaí roimhe seo:
Ní aimsífear agus ní reáchtálfar tástálacha i gcomhaid
models.pyagustests/__init__.pya thuilleadh. Bog iad chuig comhad a dtosaíonn a n-ainm letást.Ní aimsífear doctests go huathoibríoch a thuilleadh. <doctest-unittest-api>Chun doctests a chomhtháthú i do shraith tástála, lean na:ref: `moltaí i ndoiciméadú Python `.
Cuireann Django leagan modhnaithe den mhodúl: mod: doctest ó leabharlann caighdeánach Python (i django.test. _doctest`) agus tá roinnt fóntais doctest breise ann. Tá na fóntais seo díscríofa agus bainfear iad i Django 1.8; ba chóir sraith doctest a nuashonrú chun oibriú le modúl doctest an leabharlainne caighdeánach (nó a thiontú go tástálacha comhoiriúnacha ``unittest`).
Más mian leat moill a chur ar nuashonruithe ar do tsraith tástála, is féidir leat do shocrú: setting: TEST_RUNNER a shocrú go DJANGO.TEST.SIMPLE.DJANGOTESTSUITERUNNER chun an sean-iompar tástála a chur ar ais go hiomlán. Tá DjangoTestSuiterunner díluaite ach ní bhainfear é as Django go dtí leagan 1.8.
Baint de Django.contrib.gis.tests.geodjangoTestSuiterunner ``rádaí tástála saincheaptha GeodJangoLink to this heading
Tá sé seo d'fhorbróirí atá ag obair ar an bhfeidhmchlár GeodJango féin agus a bhaineann leis an mír thuas faoi athruithe sna reathaithe tástála:
Baineadh an reathnóir tástála Django.contrib.gis.tests.geodjangoTestsuitRunner ``agus ní thacaítear leis an socrú forghníomhaithe tástálacha neamhspleách GeodJango a chuir sé i bhfeidhm níos mó. Chun na tástálacha GeodJango a reáchtáil ní gá ach an `DiscoverRunner` nua a úsáid agus an aip django.contrib.gis` a shonrú.
Múnlaí úsáideora saincheaptha i dtáLink to this heading
D'athraigh tabhairt isteach an rádálaí tástála nua beagán ar an mbealach a allmhairítear samhlacha tástála. Mar thoradh air sin, ní mór d'aon tástáil a sháraíonn AUTH_USER_MODEL chun iompar a thástáil le ceann de mhúnlaí úsáideora tástála Django (Django.contrib.auth.tests.contrib.extensionUser`) an tsamhail Úsáideora a allmhairiú go sainráite i do mhodúl tástála anois:
from django.contrib.auth.tests.custom_user import CustomUser
@override_settings(AUTH_USER_MODEL="auth.CustomUser")
class CustomUserFeatureTests(TestCase):
def test_something(self):
# Test code here
...
Cuireann an t-allmhairiú seo iallach ar an tsamhail úsáideora saincheaptha a Gan an t-allmhairiú seo, ní bheidh an tástáil in ann malartú sa tsamhail úsáideora saincheaptha, agus gheobhaidh tú tuairisciú earráide:
ImproperlyConfigured: AUTH_USER_MODEL refers to model 'auth.CustomUser' that
has not been installed
Cuardaigh lá ``, `mhí, agus laeth_seachtaine atá ar an eolas ar chrios amaLink to this heading
Tugann Django 1.6 tacaíocht crios ama isteach le haghaidh: lookup: day, :lookup: month, agus:lookup: week_day cuardaigh nuai:setting: USE_TZ True. Rinneadh na cuardaigh seo roimhe seo i UTC beag beann ar an crios ama reatha.
<database-time-zone-definitions>Éilíonn sé seo: ref: sainmhínithe crios ama sa bhunachar sonraí `. Má tá SQLite á úsáid agat, ní mór duit pytz_ a shuiteáil. Má tá MySQL á úsáid agat, ní mór duit pytz_ a shuiteáil agus na táblaí crios ama a luchtú le `mysql_tzinfo_to_sql.
Cuir leis ``QuerySet.DateTimes () ``Link to this heading
Nuair a bhí an: doc: `tacaíocht crios ama' a cuireadh i Django 1.4 gníomhach, :meth: `QuerySet.dates () `</topics/i18n/timezones> d'fhill cuardaigh torthaí gan choinne, toisc gur rinneadh an comhiomlánú i <django.db.models.query.QuerySet.dates>UTC. <django.db.models.query.QuerySet.datetimes>Chun é seo a shocrú, tugann Django 1.6 API nua isteach,: meth: `QuerySet.DateTimes () `. Éilíonn sé seo cúpla athrú i do chód.
Tugann QuerySet.dates () ``rudaí ``dátaLink to this heading
QuerySet.dates() now returns a
list of date. It used to return a list of
datetime.
<django.db.models.query.QuerySet.datetimes>:meth: QuerySet.dateTimes () `filleann liosta de:class: `~datetime.datetime.
QuerySet.dates () ``nach bhfuil inúsáidte a thuilleadh ar ``DateTimeFieldLink to this heading
QuerySet.dates() raises an
error if it's used on DateTimeField when time
zone support is active. Use QuerySet.datetimes() instead.
Éilíonn date_hierarchy sainmhínithe crios amaLink to this heading
<django.db.models.query.QuerySet.datetimes>Braitheann gné: Attr: ~django.contrib.admin.modeladmin.date_hierarchy den riarachán anois ar:meth: QuerySet.DateTimes () `nuair a úsáidtear é ar a:class: `~Django.db.Models.DateTimeField.
Éilíonn sé seo sainmhínithe crios ama sa bhunachar sonraí nuai:setting: USE_TZ True. <database-time-zone-definitions>:ref: `Foghlaim níos mó `.
date_list i dtuairimí cineálacha teastaíonn sainmhínithe crios amaLink to this heading
Ar an gcúis chéanna, teastaíonn sainmhínithe crios ama sa bhunachar sonraí chun rochtain a fháil ar date_list` i gcomhthéacs radharc cineálach dáta-bhunaithe nuair a bhíonn an radharc bunaithe ar a:class: ~Django.db.Models.DateTimeField agus:setting: USE_TZ True`. <database-time-zone-definitions>:ref: `Foghlaim níos mó `.
D'fhéadfadh cuardaigh nua teacht ar réimsí samhailLink to this heading
Tugann Django 1.6 isteach cuardach `huair ``, `nóiméad, agus soicind ``ar:class: `~django.db.Models.DateTimeField`. Má bhí réimsí samhail agat ar a dtugtar ``huair ``, `nóiméad, nó soicind, beidh na cuardaigh nua ag teacht le hainmneacha réimse leat. Cuir cuardach explit:lookup: exact i gceist más saincheist é seo.
Ní réamhshocraíonn Booleanfield go False a thuilleadhLink to this heading
Nuair nach bhfuil explicit:attr: ~django.db.models.booleanfield ag a:class: ~django.db.models.field.default, is é ``None ``an luach réamhshocraithe intuigthe. Sa leagan roimhe seo de Django, “False” a bhí ann, ach níor léirigh sé sin go cruinn an easpa luach.
Féadfaidh cód atá ag brath ar an luach réamhshocraithe ná False eisceacht a ardú agus cásanna samhail nua á shábháil ar an mbunachar sonraí, toisc nach luach inghlactha é None do a:class: ~Django.db.Models.BooleanField. Ba chóir duit Default=False a shonrú sa sainmhíniú réimse, nó a chinntiú go bhfuil an réimse socraithe go True nó False sula sábhálfar an réad.
Aistriúcháin agus tuairimí i dLink to this heading
Aistriúcháin a eastóscadh tar éisLink to this heading
Aithníonn eastóscadh litríochtaí inaistrithe ó theimpléid leis an ordú:djadmin: makemessages tógáil i18n i gceart anois nuair a bhíonn siad suite i ndiaidh trácht cineál {#/#}` ar an líne chéanna. M.sh.:
{# A comment #}{% trans "This literal was incorrectly ignored. Not anymore" %}
Suíomh tuairimí aistritheoraLink to this heading
Comments for translators in templates specified using {# / #} need to
be at the end of a line. If they are not, the comments are ignored and
makemessages will generate a warning. For example:
{# Translators: This is ignored #}{% trans "Translate me" %}
{{ title }}{# Translators: Extracted and associated with 'Welcome' below #}
<h1>{% trans "Welcome" %}</h1>
Ag lua i ``reverse () ``Link to this heading
Agus URLanna á aisiompú, níor chuir Django django.utils.http.urlquote i bhfeidhm ar argóintí sula ndéantar iad a ionghabháil i bpatrúin URL. Tá an fabht seo socraithe i Django 1.6. Má d'oibrigh tú timpeall ar an fabht seo trí luachan URL a chur i bhfeidhm sula ndéantar argóintí a chur chuig ``reverse () ``, d'fhéadfadh luachan dúbailte a bheith mar thoradh air seo. Má tharlaíonn sé seo, ní gá ach an URL atá ag luachan as do chód a bhaint. Beidh ort freisin carachtair speisialta in URLanna a úsáidtear in:func: ~django.test.simpletestCase.assertDirects a gcuid leaganacha ionchódaithe a chur in ionad.
Seoltaí IP a stóráil san aip tráchtannaLink to this heading
Úsáideann an aip tráchtanna anois ``GenericipAddressfield` chun seoltaí IP tráchtaireoirí a stóráil, chun tacú le tráchtanna a chuirtear isteach ó sheoltaí IPv6. Go dtí seo, stóráil sé iad i ``iPaddressfield`, nach bhfuil i gceist ach tacú le IPv4. Agus trácht a dhéantar ó sheoladh IPv6 á shábháil, déanfaí an seoladh a ghearradh go ciúin ar bhunachair sonraí MySQL, agus ardófaí eisceacht ar Oracle. Beidh ort an cineál colúin a athrú i do bhunachar sonraí chun leas a bhaint as an athrú seo.
Maidir le MySQL, déan an cheist seo ar bhunachar sonraí do thionscadail:
ALTER TABLE django_comments MODIFY ip_address VARCHAR(39);
Maidir le Oracle, déan an cheist seo:
ALTER TABLE DJANGO_COMMENTS MODIFY (ip_address VARCHAR2(39));
Mura gcuireann tú an t-athrú seo i bhfeidhm, níl an t-iompar gan athrú: ar MySQL, gearrtar seoltaí IPv6 go ciúin; ar Oracle, gintear eisceacht. Níl aon athrú bunachar sonraí ag teastáil le haghaidh bunachair sonraí SQLite nó PostgreSQL.
Céatadán litríochta i gceisteanna cursor.executeLink to this heading
Nuair a bhíonn ceisteanna SQL amha á <executing-custom-sql>reáchtáil agat tríd an modh:ref: cursor.execut, tá an riail maidir le litríochtaí faoin gcéad (%`) a dhúbailt taobh istigh den cheist aontaithe. Bhí iompar roimhe seo ag brath ar chúlcheann an bhunachar sonraí. Anois, thar gach cúltaca, ní gá duit ach carachtair faoin gcéad liteartha a dhúbailt má tá paraiméadair athsholáthair á sholáthar agat freisin. Mar shampla:
# No parameters, no percent doubling
cursor.execute("SELECT foo FROM bar WHERE baz = '30%'")
# Parameters passed, non-placeholders have to be doubled
cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' and id = %s", [self.id])
Ní mór d'úsáideoirí SQLite` ceisteanna den sórt sin a sheiceáil agus a nuashonrú.
Téacs cabhrach de réimsí foirme samhail do réimsí ManyTomanyFieldLink to this heading
HTML rendering of model form fields corresponding to
ManyToManyField model fields used to get the
hardcoded sentence:
Hold down "Control", or "Command" on a Mac, to select more than one.
(nó a aistriúchán go dtí an áit ghníomhach) a fhorchuir mar an finscéal cabhrach a thaispeántar leo mura shon <django.db.models.Field.help_text><django.forms.Field.help_text>raigh an t-úsáideoir tréithe: attr: model `nor:attr: `form help_text` (nó cuireadh an sreang seo i gceangal le haon help_text` a sholáthraíodh).
Ó tharla sé seo ag an gciseal samhail, ní raibh aon bhealach ann chun an téacs a chosc ó bheith le feiceáil i gcásanna nach raibh sé infheidhme mar réimsí foirme a chuireann idirghníomhaíochtaí úsáideora i bhfeidhm nach mbaineann méarchlár agus/nó luch.
Ag tosú le Django 1.6, mar fhoráil sealadach comhoiriúnachta siar ad-hoc, aistríodh an loighic chun an abairt “Coinnigh síos...” a chur chuig ciseal réimse foirme samhail agus modhnaíodh chun an téacs a chur leis ach amháin nuair is é an giuirléid gaolmhar: class: ~django.forms.selectMultiple nó fo-aicmí roghnaithe.
The change can affect you in a backward incompatible way if you employ custom
model form fields and/or widgets for ManyToManyField model fields whose UIs
do rely on the automatic provision of the mentioned hardcoded sentence. These
form field implementations need to adapt to the new scenario by providing their
own handling of the help_text attribute.
Ní bhíonn tionchar ag iarratais a úsáideann áiseanna Django:doc: foirm samhail </topics/forms/modelforms> mar aon le foirm ionsuite Django: doc: fields agus:doc: widgets ach ní mór a bheith ar an eolas faoin méid atá cur síos in:ref: m2m-help_text-deprecation </ref/forms/fields> </ref/forms/widgets> thíos.
Athrú QuerySetLink to this heading
Athraíodh an t-athrú ``QuerySet` chun gach sraitheanna a fuarthas a thiontú go rudaí ``Samhail ``. I Django 1.5 agus níos luaithe tiontaíodh na sraitheanna a fuarthas go rudaí ``Samhail ``i gcodanna de 100.
Oibreoidh an cód atá ann cheana, ach d'fhéadfadh méid na sraitheanna a thiontú go rudaí athrú i gcásanna úsáide áirithe I measc na n-úsáidí den sórt sin tá lúbadh go páirteach thar shraith fiosrúcháin nó aon úsáid a chríochnaíonn ag déanamh __bool__ nó __contains__.
Go háirithe thóg an chuid is mó de chúltaca bunachar sonraí na sraitheanna go léir in aon ghuair cheana féin i 1.5.
It is still possible to convert the fetched rows to Model objects
lazily by using the iterator()
method.
<django.forms.BoundField.label_tag>:meth: BoundField.label_tag `tá an fhoirm anois: attr: `~django.forms.form.label_suffixLink to this heading
<django.forms.Form.as_ul>Tá sé seo comhsheasmhach leis an gcaoi a ndéanann modhanna cosúil:meth: Form.as_P <django.forms.Form.as_p>`agus:meth: `Form.as_ul lipéid a dhéanann.
Má rindeann tú label_tag de láimh i do theimpléid:
{{ form.my_field.label_tag }}: {{ form.my_field }}
beidh tú ag iarraidh an colon a bhaint (nó cibé deighilteoir eile a d'fhéadfá a bheith á úsáid) chun é a dhúbailt a sheachaint agus tú ag uasghrádú go Django 1.6. <label>Déanfaidh an teimpléad seo a leanas i Django 1.6 go comhionann leis an teimpléad thuas i Django 1.5, ach amháin go mbeidh an colon le feiceáil taobh istigh den eilimint ```.
{{ form.my_field.label_tag }} {{ form.my_field }}
déanfaidh sé rud éigin cosúil le:
<label for="id_my_field">My Field:</label> <input id="id_my_field" type="text" name="my_field" />
Más mian leat an t-iompar reatha a bhaineann le rindreáil label_tag a choinneáil gan an label_suffix, cuir an fhoirm label_suffix=". Is féidir leat an label_suffix` a shaincheapadh freisin ar bhonn in aghaidh an réimse ag baint úsáide as an paraiméadar nua label_suffix ar:meth: ~django.forms.boundfield.label_tag.
Tuairimí riaracháin _changelist_filters paraiméadar GETLink to this heading
Chun scagairí amharc liosta a chaomhnú agus a athchóiriú a bhaint amach, téann tuairimí riaracháin timpeall an pharaiméadair GET _changelist_filters anois. Tá sé tábhachtach go gcuirfidh tú cuntas ar an athrú sin má tá teimpléid riaracháin saincheaptha agat nó má tá do thástálacha ag brath ar na URLanna roimhe seo. Más mian leat filleadh ar an iompar bunaidh is féidir leat an tréith: attr: ~django.contrib.admin.modeladmin.preserve_filters a shocrú go False.
Úsáideann athshocrú pasfhocal django.contrib.auth ionchódú bonn 64 de ``Úsáideoir ``PKLink to this heading
D'úsáid leaganacha roimhe seo de Django ionchódú bonn 36 den phríomh-eochair Úsáideoir ``sna tuairimí athshocraithe pasfhocal agus URLanna (``django.contrib.auth.views.password_reset_confirm ()). Is leor ionchódú Bonn 36 más sláimhir é príomh-eochair an úsáideora, áfach, le samhlacha úsáideora saincheaptha a thabhairt isteach i Django 1.5, b'fhéidir nach mbeidh an toimhde sin fíor a thuilleadh.
Athraíodh django.contrib.auth.views.password_reset_confirm () ``chun paraiméadar ``uidb64 a ghlacadh in ionad uidb36. Má tá an dearcadh seo á aisiompú agat, mar shampla i dteimpléad saincheaptha ``password_reset_email.html`, bí cinnte do chód a nuashonrú.
Cuireadh shim sealadach do django.contrib.auth.views.password_reset_verify () ``a ligfidh naisc athshocraithe pasfhocal a ghintear roimh Django 1.6 leanúint ag obair chun comhoiriúnacht ar ais a sholáthar; bainfear é seo i Django 1.7. Dá bhrí sin, chomh fada agus a bheidh do shuíomh ag rith Django 1.6 ar feadh níos mó ná ``PASSWORD_RESET_TIMEOUT_DAYS `, ní bheidh aon éifeacht ag an athrú seo. Mura bhfuil (mar shampla, má dhéanann tú uasghrádú díreach ó Django 1.5 go Django 1.7), ansin ní oibreoidh aon naisc athshocraithe pasfhocal a ghintear sula ndéanann tú uasghrádú go Django 1.7 nó níos déanaí tar éis an uasghrádaithe.
Ina theannta sin, má tá aon URLanna athshocraithe pasfhocal saincheaptha agat, beidh ort iad a nuashonrú trí uidb36` a chur in ionad ``uidb64 agus an doic a leanann an patrún sin le slash. Cuir _\ - freisin leis an liosta carachtair a d'fhéadfadh a mheaitseáil leis an bpatrún uidb64.
Mar shampla:
url(
r"^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$",
"django.contrib.auth.views.password_reset_confirm",
name="password_reset_confirm",
),
éiríonn sé:
url(
r"^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$",
"django.contrib.auth.views.password_reset_confirm",
name="password_reset_confirm",
),
B'fhéidir gur mhaith leat an shim a chur leis freisin chun tacú leis na naisc athshocraithe sean-stíl. Ag baint úsáide as an sampla thuas, mhodhnófá an url atá ann cheana trí django.contrib.auth.auth.views.password_reset_confirm` a chur in ionad django.contrib.auth.views.password_reset_confirm_uidb36` agus bain an argóint ``ainm `ionas nach mbeidh sé ag teacht ar an url nua:
url(
r"^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$",
"django.contrib.auth.views.password_reset_confirm_uidb36",
),
Is féidir leat an patrún URL seo a bhaint tar éis d'aip a imscaradh le Django 1.6 le haghaidh ``PASSWORD_RESET_TIMEOUT_DAYS ``.
Athraigh sraith seisiúin réamhshocraithe go JSONLink to this heading
Go stairiúil, d'úsáid :mod: django.contrib.sessions: mod: pickle chun sonraí seisiúin a shraitheadh sula ndéantar iad a stóráil sa chúltaca. Má tá cúltaca seisi <cookie-session-backend>úin fianán sínithe á úsáid agat: agus:setting: SECRET_KEY is aithne ag ionsaitheoir (níl leochaileacht bhunúsach i Django a chuirfeadh sé sceitheadh), d'fhéadfadh an t-ionsaitheoir teaghrán a chur isteach ina seisiún a fhorghníomhaíonn cód treallach ar an bhfreastalaí. Tá an teicníc chun é sin a dhéanamh simplí agus ar fáil go héasca ar an idirlíon. Cé go síníonn stóráil seisiún fianán na sonraí atá stóráilte ag fianán chun cur isteach a chosc, méadaíonn sceitheadh a: setting: SECRET_KEY láithreach go leochaileacht iargúlta forghníomhaithe cód.
Is féidir an t-ionsaí seo a mhaolú trí shraitheadh sonraí seisiúin ag baint úsáide as JSON seachas: mod: pickle. Chun é seo a éascú, thug Django 1.5.3 suíomh nua isteach, :setting: SESSION_SERIALIZER, chun an fhormáid sraitheach seisiúin a shaincheapadh. Maidir le comhoiriúnacht ar ais, réamhshocraigh an socrú seo le húsáid: mod: pickle i Django 1.5.3, ach tá an réamhshocraithe athraithe againn go JSON i 1.6. Má dhéanann tú uasghrádú agus ag aistriú ó phiocán go JSON, caillfear seisiúin a cruthaíodh roimh an uasghrádú Cé nach dtacaíonn sraith JSON le gach réad Python cosúil:mod: pickle a dhéanann, molaimid go mór seisiúin JSON sraitheach a úsáid. Bí ar an eolas faoi na rudaí seo a leanas agus tú ag seiceáil do chód chun a fháil amach an n-oibreoidh sraith JSON do d'iarratas:
Teastaíonn eochracha teaghrán ó JSON, mar sin is dócha go mbeidh fadhbanna ort má tá eochracha neamh-sreang á úsáid agat i request.session `.
Ní oibreoidh éag seisiúin trí luachanna
datetimea rith chuig: ~django.contrib.sessions.backends.base.sessionbase.set_expiry toisc nach bhfuil luachannadatetimesraitheach i JSON. Is féidir leat luachanna sláimhir a úsáid ina ionad sin.
Féach an doiciméadach:ref: session_serialization le haghaidh tuilleadh sonraí.
Athraíonn Mapper Coibhneasta CuspóirLink to this heading
Tá go leor athruithe ar an ORM i Django 1.6. Tagann na hathruithe seo den chuid is mó i dtrí chatagóir:
Socruithe fabhtanna (m.sh. clásail ceangail cearta le haghaidh caidreamh cineálach, ceisteanna a chomhcheangal, páirt a chur chun cinn, agus ceartú
Ullmhú le haghaidh gnéithe nua. Mar shampla tá an ORM réidh go hinmheánach anois le haghaidh eochracha eachtracha ilcholumn.
Glanadh ginearálta.
D'fhéadfadh roinnt fadhbanna comhoiriúnachta a bheith mar thoradh ar Mar shampla, ginfidh roinnt ceisteanna ainmneacha tábla éagsúla anois. <django.db.models.query.QuerySet.extra>Is féidir leis seo dul i bhfeidhm ar: meth: QuerySet.extra () `. Ina theannta sin, tabharfaidh roinnt ceisteanna torthaí difriúla anois. <django.db.models.Q>Is sampla: meth: `eisiamh (coinníoll) <django.db.models.query.QuerySet.exclude>`nuair is ceann casta é an coinníoll (tagairt ilchomhtháirteacha taobh istigh: aicme: `rudaí Q). I go leor cásanna níor thug na ceisteanna a raibh tionchar orthu torthaí cearta i Django 1.5 ach déanann siad anois. Ar an drochuair tá cásanna ann freisin a tháirgeann torthaí éagsúla, ach ní tháirgeann Django 1.5 ná 1.6 torthaí cearta.
Faoi dheireadh, rinneadh go leor athruithe ar na APIs inmheánacha ORM.
IlghnéitheachLink to this heading
Ní féidir an Django.db.Models.Query.EmptyQuerySet` a thabhairt níos mó - níl sé inúsáidte ach mar aicme marcóra chun seiceáil má:meth: ~django.db.models.query.queryset.none tugtar: ``isinstance (qs.none (), emptyQuerySet) ``
Má úsáidtear do chód CSS/JavaScript chun giuirléidí ionchuir HTML a rochtain de réir cineál, ba cheart duit é a athbhreithniú mar d'fhéadfadh giuirléidí
type='text'a aschur anois martype='email', type='url'` nó ``type='number'` ag brath ar a gcineál réimse comhfhreagrach.Foirm field's:attr: ~django.forms.field.error_messages ina bhfuil sealbhóir áite ba cheart anois sealbhóir áit ainmnithe a úsáid i gcónaí ("Luach '% (value) s' ró-mhór"` in ionad ``"Luach '%s' ró-mór"). Féach an doiciméadú réimse comhfhreagrach le haghaidh sonraí faoi ainmneacha na sealbhóirí áite. Bíonn tionchar go háirithe ag na hathruithe i 1.6 ar: aicme: `~django.forms.decimalfield agus:class: ~django.forms.ModelMultipleChoiceField.
Some:attr: ~django.forms.field.error_messages le haghaidh: aicme: ~django.forms.integerfield, :class: ~django.forms.emailfield,
iPadressfield, :class: ~django.forms.genericipAddressField, agus:class: Django.Forms.~GineRicipAddressField Cuireadh Jango.Forms.SlugField` faoi chois toisc gur dhúbailte siad teachtaireachtaí earráide a sholáthraíodh cheana féin ag bailíochtóirí ceangailte leis na réimsí.Due to a change in the form validation workflow,
TypedChoiceFieldcoercemethod should always return a value present in thechoicesfield attribute. That limitation should be lifted again in Django 1.7.Rinneadh athruithe ar an mbealach a láimhseáiltear amach ama i gcúltaca taisce. Ní féidir an t-am réamhshocraithe a úsáid a thuilleadh mar thoradh ar
timeout=Noneag dul isteach go sainráite. Socróidh sé anois ama neamh-éag. Ní úsáideann tú 0 isteach sa chúltaca memcache an t-am réamhshocraithe a thuilleadh, agus anois socraíonn sé agus rachaidh sé in éag an luach láithreach.Úsáidtear an aip
django.contrib.flatpageschun ceanntásca saincheaptha HTTP a shocrú chun críocha dífhabhtaithe. Níor doiciméadaíodh an fheidhmiúlacht seo agus rinneadh an caistriú neamhéifeachtach mar sin baineadh í, mar aon lena chur i bhfeidhm cineálach, ar fáil roimhe seo in django.core.xheaders.Tá an xViewMiddleware` aistrithe ó
django.middleware.docgodjango.contrib.admindocs.middlewaretoisc gur mionsonraí cur chun feidhme de admindocs é, cruthaithe nach bhfuil sé in-athúsáidte i gcoitinne.GenericIPAddressFieldwill now only allowblankvalues ifnullvalues are also allowed. Creating aGenericIPAddressFieldwhereblankis allowed butnullis not will trigger a model validation error becauseblankvalues are always stored asnull. Previously, storing ablankvalue in a field which did not allownullwould cause a database exception at runtime.Má ardaítear eisceacht
NoReverseMatchó mhodh agus teimpléad á rindreáil, ní dhéantar é a thostú. Mar shampla, beidh{{obj.view_href}}mar thoradh ar rindreáil teimpléid má ardaíonnview_href () ```noReverseMatch. Níl aon athrú ar an gclibe:ttag: {% url%}<url>, is cúis leis go dteipeann ar rindreáil teimpléid mar i gcónaí nuair a ardaítearnoReverseMatch.django.test.Client.logout()now callsdjango.contrib.auth.logout()which will send theuser_logged_out()signal.Authentication views are now reversed by name, not their locations in
django.contrib.auth.views. If you are using the views without aname, you should update yoururlpatternsto usedjango.conf.urls.url()with thenameparameter. For example:(r"^reset/done/$", "django.contrib.auth.views.password_reset_complete")éiríonn sé:
url( r"^reset/done/$", "django.contrib.auth.views.password_reset_complete", name="password_reset_complete", )RedirectViewnow has apattern_nameattribute which allows it to choose the target by reversing the URL.In Django 1.4 and 1.5, a blank string was unintentionally not considered to be a valid password. This meant
set_password()would save a blank password as an unusable password likeset_unusable_password()does, and thuscheck_password()always returnedFalsefor blank passwords. This has been corrected in this release: blank passwords are now valid.Ghlac an admin
changelist_viewle paraiméadar GETpopchun a chur in iúl go raibh sé le taispeáint i bpíosa aníos. Athainmníodh an paraiméadar seo go `` _ aníos aníos`` chun a bheith comhsheasmhach leis an gcuid eile de na hamharcanna riaracháin. Ba cheart duit do theimpléid saincheaptha a nuashonrú má úsáideann siad an t-ainm paraiméadar roimhe seo.validate_email()now accepts email addresses withlocalhostas the domain.Cuireann an rogha nua:option: makemessages --keep-pot cosc ar an gcomhad sealadach
.pota ghintear a scriosadh sula gcruthaítear an comhad.po.Baineadh an
django.core.servers.basehttp.wsgiserverexceptiongan doiciméadú. Úsáidsocket.errora sholáthraíonn an leabharlann caighdeánach ina ionad. Scaoileadh an t-athrú seo freisin i Django 1.5.5.Tá síniú de:meth: Django.Views.Generic.Base.RedirectView.get_Redirect_URL athraithe agus glacann sé anois le hargóintí seasmhacha freisin (
*args, **kwargs ``). Cuirfear aon ghrúpa gabháilte gan ainm ar aghaidh chuig ``get_redirect_url () ``agus d'fhéadfadh ``typeErrora bheith mar thoradh air mura ndéanann tú síniú do mhodha saincheaptha a nuashonrú.
Gnéithe atá díscríofa i 1.6Link to this heading
APIs bainistíochta idirbheartLink to this heading
Rinneadh athchóiriú go hiomlán ar bhainistíocht idirbheart i Django 1.6, agus tá na APIs reatha dlús:
Django.middleware.Transaction.TransactionMiddleWaredjango.db.transaction.autochommitdjango.db.transaction.comit_on_rathdjango.db.transaction.comm_lámhan socrú
TRANSACTIONS_MANAGED
django.contrib.tuairimLink to this heading
Tá creat tráchta Django díluaite agus ní thacaítear leis a thuilleadh. Beidh sé ar fáil i Django 1.6 agus 1.7, agus bainfear é i Django 1.8. Freastalfar níos fearr ar fhormhór na n-úsáideoirí le réiteach saincheaptha, nó táirge óstáilte mar Disqus.
Tá an cód ar a dtugtar django.contrib.comments roimhe seo fós ar fáil i stóras seachtrach.
Tacaíocht do leaganacha PostgreSQL níos sine ná 8.4Link to this heading
Sroichtear deireadh na dtréimhsí tacaíochta suas srutha i mí na Nollag 2011 do PostgreSQL 8.2 agus i mí Feabhra 2013 do 8.3. Mar thoradh air sin, socraíonn Django 1.6 8.4 mar an leagan íosta PostgreSQL a thacaíonn sé go hoifigiúil.
Spreagtar go láidir duit an leagan is déanaí de PostgreSQL atá ar fáil a úsáid, mar gheall ar fheabhsuithe feidhmíochta agus chun leas a bhaint as an macasamhail sruthú dúchasach atá ar fáil i PostgreSQL 9.x.
Athruithe ar:ttag: timthriall agus:ttag: firstofLink to this heading
De ghnáth éalaíonn an córas teimpléid gach athróg chun ionsaithe XSS a sheachaint. Mar gheall ar thimpiste staire, áfach, tugann na clibeanna:ttag: cicle agus:ttag: firstof a gcuid argóintí mar atá.
Tosaíonn Django 1.6 próiseas chun an neamhréireacht seo a cheartú. Soláthraíonn leabharlann teimpléad todhcha cur i bhfeidhm malartacha de:ttag: cicle agus:ttag: firstof a n-ionchuir a n-ionchuir a n-uathoibríoch. Má tá na clibeanna seo á úsáid agat, moltar duit an líne seo a leanas a áireamh ag barr do theimpléid chun an t-iompar nua a chumasú:
{% load cycle from future %}
nó:
{% load firstof from future %}
Tá na clibeanna a chuireann an sean-iompar i bhfeidhm imithe i léig, agus i Django 1.8, cuirfear an t-iompar nua in ionad an tseaniompar. Chun comhoiriúnacht le leaganacha amach anseo de Django a chinntiú, ba cheart teimpléid atá ann cheana a mhodhnú chun na leaganacha future a úsáid.
<autoescape>Más gá, is féidir leat éalú uathoibríoch a dhíchumasú go sealadach le:func: ~django.utils.safestring.mark_safe nó:ttag: {% autoescape off%}.
CACHE_MIDDLEWARE_ANONYMOUS_ONLY socrúLink to this heading
Úsáidtear Cachemiddleware agus UpdateCacheMiddleware chun bealach a sholáthar chun iarratais a thaisceadh ach amháin mura ndearna úsáideoir logáilte isteach iad. Bhí an meicníocht seo neamhéifeachtach den chuid is mó toisc go gcuireann an meán-earraí ceannteideal HTTP ``Vary: Cookie` san áireamh i gceart, agus tá an ceannteideal seo á leagan síos ar ócáidí éagsúla, mar shampla:
rochtain a fháil ar an seisiún, nó
ag baint úsáide as cosaint CSRF, atá casaithe air de réir réamhshocraithe, nó
ag baint úsáide as leabharlann taobh an chliaint a shocraíonn fianáin, cosúil le Google Analytics.
Fágann sé seo go n-oibríonn an taisce go héifeachtach ar bhonn in aghaidh na seisiúin beag beann ar an socrú ``CACHE_MIDDLEWARE_ANONYMOUS_ONLY`.
Socrú `SEND_BROKEN_LINK_EMAILSLink to this heading
CommonMiddleware used to provide basic
reporting of broken links by email when SEND_BROKEN_LINK_EMAILS is set to
True.
Mar gheall ar fhadhbanna ordaithe dochreidte idir:class: ~django.middleware.common.commonMiddleware agus:class: ~django.middleware.locale.localeMiddleware, roinntear an ghné seo amach i middleware nua: :class: ~django.middleware.common.BrokenLinkemMiddailsLeware.
Má tá tú ag brath ar an ngné seo, ba chóir duit Django.middleware.common.BrokenLinkemailsMiddleware'` a chur le do shuíomh ``MIDDLEWARE_CLASSES agus SEND_BROKEN_LINK_EMAILS` a bhaint as do shocruithe.
Modh _has_changed ar ghuirléidíLink to this heading
Má shainigh tú do ghuirléidí foirme féin agus má shainigh tú an modh _has_changed ar ghuirléid, ba cheart duit an modh seo a shainiú anois ar an réimse foirme féin.
module_name tréith samhail _metaLink to this heading
Samhail. Ainmníodh _meta.module_name go model_name. In ainneoin gur API príobháideach é, rachaidh sé trí chosán diúltaithe rialta.
Modhanna múnla _meta get_ (cuir |athraithe|scriosadh) _ceadúnaLink to this heading
Samhail. Cuireadh modhanna _meta.get_ (add |athraithe|scriosadh) ar mhodhanna _ceadúnaí. Fiú mura raibh siad mar chuid den API poiblí rachaidh siad trí chosán diúltaithe rialta freisin. Is féidir leat ``django.contrib.auth.get_permission_codename ('action', Samhail) a chur in ionad iad. _meta) ``áit a bhfuil ``'gníomh'` `'add', ```athraithe, nó ``'scriose'.
Athainmníodh get_query_set agus modhanna comhchosúla go get_querysetLink to this heading
Athainmníodh modhanna a thugann QuerySet` ar nós Manager.get_query_set` nó ModelAdmin.querySet go get_queryset`.
Má tá tú ag scríobh leabharlann a chuireann modh Manager.get_query_set` i bhfeidhm, mar shampla, agus ní mór duit tacú le seanleaganacha Django, ba cheart duit an modh a athainmniú agus alias a chur leis an sean-ainm go coinníollach:
class CustomManager(models.Manager):
def get_queryset(self):
pass # ...
if django.VERSION < (1, 6):
get_query_set = get_queryset
# For Django >= 1.6, models.Manager provides a get_query_set fallback
# that emits a warning when used.
Má tá leabharlann á scríobh agat a chaithfidh glaoch ar an modh get_queryset agus nach gcaithfidh tú tacú le seanleaganacha Django, ba chóir duit scríobh:
get_queryset = (
some_manager.get_query_set
if hasattr(some_manager, "get_query_set")
else some_manager.get_queryset
)
return get_queryset() # etc
I gcás ginearálta bainisteoir saincheaptha a chur i bhfeidhm a mhodh get_queryset féin agus a ghlaonn an modh sin, agus a chaithfidh oibriú le leaganacha níos sine Django, agus leabharlanna nár nuashonraíodh fós, tá sé úsáideach modh get_queryset_compat a shainiú mar thíos agus é a úsáid go hinmheánach do do bhainisteoir:
class YourCustomManager(models.Manager):
def get_queryset(self):
return YourCustomQuerySet() # for example
if django.VERSION < (1, 6):
get_query_set = get_queryset
def active(self): # for example
return self.get_queryset_compat().filter(active=True)
def get_queryset_compat(self):
get_queryset = (
self.get_query_set if hasattr(self, "get_query_set") else self.get_queryset
)
return get_queryset()
Cuidíonn sé seo leis na hathruithe atá ag teastáil a íoslaghdú, ach oibríonn sé i gceart freisin i gcás fo-aicmí (mar shampla RelatedManagers ó Django 1.5) a d'fhéadfadh get_query_set nó get_queryset a shárú.
Amharc gearrchearr agus URLConfLink to this heading
Bogadh an radharc shortcut ó django.views.defaults` go django.contrib.contenttypes.views go gairid tar éis an scaoileadh 1.0, ach níor dhíothas an sean-áit riamh. Ceartaíodh an maoirseacht seo i Django 1.6 agus ba cheart duit an suíomh nua a úsáid anois.
Rinneadh an URLConf django.conf.urls.shortcut a dhíchur freisin. Má tá tú ag áireamh é i URLConf, ní gá ach: a chur in ionad:
(r"^prefix/", include("django.conf.urls.shortcut")),
le:
(
r"^prefix/(?P<content_type_id>\d+)/(?P<object_id>.*)/$",
"django.contrib.contenttypes.views.shortcut",
),
Samhlfhoirme gan réimsí ``nó ``eisiam`Link to this heading
Roimhe seo, dá dteastaíonn uait a:class: ~Django.Forms.ModelForm chun gach réimse ar an tsamhail a úsáid, d'fhéadfá an tréith Meta.Fields a fhágáil, agus úsáidfí gach réimse.
D'fhéadfadh fadhbanna slándála a bheith mar thoradh air seo ina gcuirtear réimsí leis an tsamhail agus, gan aon ghnó, a éiríonn siad in-eagarthóireachta go huathoibríoch I roinnt cásanna, go háirithe le réimsí boolean, is féidir go mbeadh an fhadhb seo dofheicthe go hiomlán. < https://en.wikipedia.org/wiki/Mass_assignment_vulnerability>Is foirm é seo de `Leochaileacht sannadh ollmhóraí`_.
Ar an gcúis seo, déantar an t-iompar seo a dhíchur, agus déantar an rogha Meta.exclude a úsáid go láidir. Ina áit sin, ba chóir gach réimse atá beartaithe lena áireamh san fhoirm a liostáil go sainráite sa tréith réimsí `fields.
Mura bhfuil feidhm ag an imní slándála seo i ndáiríre i do chás, tá aicearra ann chun a léiriú go sainráite gur chóir gach réimse a úsáid - bain úsáid as an luach speisialta "__all__" don tréith réimsí:
class MyModelForm(ModelForm):
class Meta:
fields = "__all__"
model = MyModel
Má tá ModelForms ``saincheaptha agat nach gá ach a úsáid sa riarachán, tá rogha eile ann. Tá a mhodhanna féin ag an riarachán chun réimsí a shainiú (`fieldsets srl.), agus mar sin tá sé iomarcach liosta réimsí a chur leis an Modelform`. Ina áit sin, fág ach an aicme istigh Meta den ModelForm ``a fhágáil, nó an tréith ``Meta.Model` a fhágáil. Ós rud é go bhfuil a fhios ag an bhfo-aicme ModelAdmin cén tsamhail dó a bhfuil sé, féadfaidh sé na tréithe riachtanacha a chur leis chun `ModelForm ``feidhmiúil a bhaint amach. Oibríonn an t-iompar seo freisin le haghaidh leaganacha Django níos luaithe.
UpdateView agus CreateView gan réimsí follasachaLink to this heading
Tá na tuairimí cineálacha:class: ~django.views.generic.edit.createView agus:class: ~django.views.generic.edit.updateView, agus aon rud eile a dhíorthaítear ó:class: ~Django.Views.Generic.Edit.ModelFormMixin, leochaileach don fhadhb slándála a thuairiscítear sa chuid thuas, toisc gur féidir leo ``ModelFormixin` a chruthú go huathoibríoch Foirm ``a úsáideann gach réimse le haghaidh samhail.
Ar an gcúis seo, má úsáideann tú na tuairimí seo chun samhlacha a chur in eagar, ní mór duit an tréith fields` (nua i Django 1.6) a sholáthar freisin, ar liosta de réimsí samhlacha é agus a oibríonn ar an mbealach céanna leis an tréith: `~django.forms.modelform` `Meta.fields. De rogha air sin, is féidir leat an tréith form_class a shocrú le Modelform a shainmhíníonn go sainráite na réimsí atá le húsáid. Tá fo-aicme UpdateView nó CreateView` a shainmhíniú le húsáid le samhail ach gan liosta follasach réimsí a shainmhíniú.
Téacs cabhrach de réimsí foirm mhúnla a ghearradh do réimsí ``ManyTomanyField`Link to this heading
Tá gach láimhseáil speisialta ar an tréith help_text de réimsí samhail ManyTomanyField a dhéantar ag réimsí caighdeánacha samhail nó foirm mhúnla mar a thuairiscítear in:ref: m2m-help_text thuas a dhíothú agus bainfear é i Django 1.8.
Ní mór téacs cabhrach na réimsí seo a láimhseáil le feidhmchláir, réimsí foirme saincheaptha nó giuirléidí, díreach mar a tharlaíonn leis an gcuid eile de na cineálacha réimse samhail.