Nótaí scaoilte Django 2.1Link to this heading

1 Lúnasa, 2018

Fáilte go dtí Django 2.1!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-2.1>, chomh maith le roinnt: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-2.1> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 2.0 nó níos luaithe. <deprecated-features-2.1>Chuireamar: Ref: thit roinnt <removed-features-2.1>gnéithe `a bhfuil deireadh a dtimthriall díghníomhaíochta bainte amach acu, agus chuireamaire:ref: `thosaigh muid ar an bpróiseas díghníomhaíochta do roinnt gnéithe.

Féach an treoir:doc: /howto/upgrade-leagan má tá tionscadal atá ann cheana á nuashonrú agat.

Comhoiriúnacht PythonLink to this heading

Django 2.1 supports Python 3.5, 3.6, and 3.7. Django 2.0 is the last version to support Python 3.4. We highly recommend and only officially support the latest release of each series.

Cad atá nua i Django 2.1Link to this heading

Cead “féach” samhailLink to this heading

<django.db.models.Options.default_permissions>Cuirtear cead “amharc” leis an tsamhail:attr: Meta.default_Permissions `. Cruthófar na ceadanna nua go huathoibríoch agus iad ag rith: djadmin: `migrate.

Ligeann sé seo rochtain léite amháin a thabhairt d'úsáideoirí ar mhúnlaí sa riarachán. :meth: Tá .modeladmin.has_view_permission nua. Tá an cur i bhfeidhm comhoiriúnach ar ais sa mhéid nach gá an cead “amharc” a shannadh chun ligean d'úsáideoirí a bhfuil an cead “athraithe” acu rudaí a chur in eagar.

<view_permission_backwards_incompatible>Tá cúpla de:ref: `breithnithe neamh-chomhoiriúnacha ar ais `.

MionghnéitheLink to this heading

django.contrib.adminLink to this heading

  • ModelAdmin.search_fields now accepts any lookup such as field__exact.

  • tá jQuery uasghrádaithe ó leagan 2.2.3 go 3.3.1.

  • Ligeann an modh nua:meth: .modeladmin.delete_querySet próiseas scriostha na gníomhaíochta “scrios rudaí roghnaithe” a shaincheapadh.

  • <overriding-default-admin-site>Is féidir leat anois:ref: `an suíomh riaracháin réamhshocraithe a shárú `.

  • Ligeann an modh nua:attr: .modelAdmin.sortable_by agus:meth: .modelAdmin.get_sortable_by teorannú ar na colúin is féidir a shórtáil ar leathanach an liosta athraithe.

  • D'fhéadfadh go mbeadh an tréith admin_order_field` le haghaidh eilimintí in:attr: .modelAdmin.list_display anois ina léiriú fiosrúcháin.

  • The new ModelAdmin.get_deleted_objects() method allows customizing the deletion process of the delete view and the "delete selected" action.

  • <admin-templates-overridden-per-app-or-model>Is féidir leis na teimpléid actions.html, change_list_results.html`, date_hierarchy.html`, pagination.html`, prepopulated_fields_js.html`, search_form.html`, agus submit_line.html a bheith anois:ref: `athsháraithe in aghaidh an aip nó in aghaidh an tsamhail `(seachas a athsháraítear ar fud an domhain).

  • Is féidir leis an liosta athraithe riaracháin agus na huirlisí réad foirme a athrú anois:ref: athsháraithe in aghaidh an aip, in aghaidh an tsamhail, nó ar fud an domhain `le teimpléid ``change_list_object_tools.html` agus ``change_form_object_tools.html`<admin-templates-overridden-per-app-or-model>`.

  • InlineModelAdmin.has_add_permission() is now passed the parent object as the second positional argument, obj.

  • Is féidir le gníomhartha riaracháin anois :tag:`ceadanna a shonrú <admin-action-permissions>` chun a infhaighteacht a theorannú d'úsáideoirí áirithe.

django.contrib.authLink to this heading

django.contrib.gisLink to this heading

  • Is é an modh nua:meth: .geosgeometry.buffer_with_style leagan de:meth: ~.geosgeometry.buffer a cheadaíonn stíl an maoláin a shaincheapadh.

  • OpenLayersWidget is now based on OpenLayers 4.6.5 (previously 3.20.1).

django.contrib.sessionsLink to this heading

  • Cuireadh an socrú:setting: SESSION_COOKIE_SAMESITE leis chun an bratach fianán SameSite a shocrú ar fhianáin seisiúin.

CacheLink to this heading

  • Úsáideann an:ref: `cúltaca taisce cuimhne áitiúil <local-memory-caching>`straitéis chaillú (LRU) is lú a úsáidtear le déanaí seachas ceann bréag-randamach.

  • <low-level-cache-api>Nuashonraíonn an modh nua:meth: ~django.core.cache.touch den: ref: `Leas-leibhéal taisce API `an t-am na heochracha taisce.

CSRFLink to this heading

  • Cuireadh an socrú: socrú: CSRF_COOKIE_SAMESITE leis chun an bratach fianán SameSite a shocrú ar fhianáin CSRF.

FoirmeachaLink to this heading

  • Déanann an giuirléid le haghaidh ImageField anois leis an tréith HTML accept="image/*".

IdirnáisiúnúLink to this heading

  • Cuireadh an fheidhme:meth: ~django.utils.translation.get_supported_language_variant leis.

  • Úsáideann teaghráin neamhaistrithe le haghaidh leaganacha teanga chríochach aistriúcháin na teanga chineálach Mar shampla, úsáideann teaghráin pt_br neamhaistrithe aistriúcháin pt.

Orduithe BainistíochtaLink to this heading

  • Ligeann an rogha nua:option: inspectdb --include-views samhlacha a chruthú le haghaidh tuairimí bunachar sonraí.

  • Úsáideann an rang:Class: ~Django.Core.Management.BaseCommand formáiditheoir cabhrach saincheaptha anois ionas go mbeidh na roghanna caighdeánacha mar --verbosity--settings le feiceáil dheireanach san aschur cabhrach, ag tabhairt suíomh níos suntasaí do roghanna ordaithe fo-aicmithe.

ImirceLink to this heading

  • Tacaíocht bhreise le haghaidh sraitheadh rudaí functools.partialmethod.

  • Chun tacú le timpeallachtaí reoite, féadfar imirce a luchtú ó chomhaid .pyc.

SamhlaLink to this heading

  • Is féidir le samhlacha ``__init_subclass__ () ``a úsáid anois ó:pep: 487.

  • Féadfar Binaryfield a shocrú anois go editable=true más mian leat é a chur san áireamh i bhfoirmeacha samhlacha.

  • Cuirtear roinnt feidhmeanna bunachar sonraí téacs nua leis: :class: ~django.db.models.functions.chr, :class: ~django.db.models.functions.left, :class: ~django.db.models.functions.lpad, :class: ~django.db.models.functions.ltrim, :class: ~django..db.Models.Functions.Ord, :class: ~django.db.models.functions.repeat, :class: ~django.db.models.functions.replace, :class: ~django.db.models.functions.right, :class: ~Django.db.Models.Functions.rpad, :class: ~django.db.db.Models.Functions.rTrim, agus:aicme: ~Django.db.Models.Functions.Trim.

  • An feidhm nua:class: ~django.db.models.functions.truncWeek truncats:class: ~Django.db.Models.DateField agus:class: ~Django.db.Models.DateTimeField go dtí an Luan seachtaine.

  • Is féidir nathanna ceisteanna a dhiúltú anois ag baint úsáide as comhartha lúide.

  • QuerySet.order_by() and distinct(*fields) now support using field transforms.

  • BooleanField can now be null=True. This is encouraged instead of NullBooleanField, which will likely be deprecated in the future.

  • Taispeánann an modh nua:meth: .querySet.explain plean forghníomhaithe an bhunachar sonraí ar cheist tacar fiosrúcháin.

  • : meth: .queryset.raw tacaíonn anois:meth: ~.queryset.prefetch_related.

Iarrataí agus FreagraíLink to this heading

  • Cuireadh leis: Meth: .httpRequest.get_full_path_info.

  • Cuireadh an argóint samesite leis: meth: .httpResponse.set_cookie chun an bratach fianán SameSite a shocrú.

  • Socraíonn an argóint nua as_attachment do:class: ~django.http.fileResponse an ceannteideal Content-Disposition chun an brabhsálaí a iarraidh an bhfuil an t-úsáideoir ag iarraidh an comhad a íoslódáil. Déanann FileResponse iarracht na ceannteidil Content-Type agus Content-Length a shocrú nuair is cuí.

TeimpléidLink to this heading

  • <script>Aisíonn an scagaire nua:tfilter: json_script réad Python go sábháilte mar JSON, fillte i gclib ````, réidh le húsáid le JavaScript.

TástálachaLink to this heading

  • Breise tástáil: class: ~django.test.client tacaíocht do 307 agus 308 atreoraithe.

  • Déanann an tástála:class: ~django.test.client sraitheach foclóir sonraí iarratais mar JSON má tá content_type = 'application/json'. Is féidir leat an t-ionchódóir JSON a shaincheapadh le paraiméadar ``json_encoder ``an chliaint tástála.

  • Is leagan níos simplí de:meth: ~UnitTest.TestCase.AssertWarnsMessage an modh nua:meth: ~UnitTest.TestCase.AssertWarnsRegex.

Athruithe neamh-chomhoiriúnacha ar ais i 2.1Link to this heading

API cúltaca bunachar sonraíLink to this heading

Déanann an rannán seo cur síos ar athruithe a d’fhéadfadh a bheith ag teastáil ar dhroim bhunachar sonraí tríú páirtí.

  • Chun cloí le:pep: 249, athraítear eisceachtaí nuair nach dtacaíonn bunachar sonraí le gné ó:exc: NotImplementederror to:exc: django.db.notSupportedError.

  • Athainmníodh an bratach gné bunachar sonraí allow_sliced_subqueries` go allow_sliced_subqueries_with_in`.

  • DatabaseOperations.Distinct_SQL () teastaíonn argóint params` breise anois agus tugann sé tuple SQL agus paraiméadair in ionad teaghrán SQL.

  • Athraítear databaseFeatures.introspected_boolean_field_type ó mhodh go maoin.

django.contrib.gisLink to this heading

  • Baintear tacaíocht do SpatiaLite 4.0.

Tacaíocht titim do MySQL 5.5Link to this heading

Is é deireadh na tacaíochta suas srutha do MySQL 5.5 ná Nollaig 2018. Tacaíonn Django 2.1 le MySQL 5.6 agus níos airde.

Tacaíocht titim do PostgreSQL 9.3Link to this heading

Is é Meán Fómhair 2018 deireadh na tacaíochta suas srutha do PostgreSQL 9.3. Tacaíonn Django 2.1 le PostgreSQL 9.4 agus níos airde.

Bainte BCryptPasswordHasher ón socrú réamhshocraithe PASSWORD_HASHERSLink to this heading

Má d'úsáid tú bcrypt le Django 1.4 nó 1.5 (sular cuireadh BCryptsha256PasswordHasher i Django 1.6), b'fhéidir go mbeadh roinnt pasfhocail agat a úsáideann an BCryptPasswordHasher hasher.

Is féidir leat a sheiceáil an bhfuil sin an cás mar seo:

Code
from django.contrib.auth import get_user_model

User = get_user_model()
User.objects.filter(password__startswith="bcrypt$$")

Más mian leat leanúint ar aghaidh ag ceadú na pasfhocail sin a úsáid, beidh ort an socrú:setting: PASSWORD_HASHERS a shainiú (mura bhfuil tú cheana féin) agus ``django.contrib.auth.hashers.bcryptPasswordHasher'` a chur san áireamh.

Athróg comhthéacs teimpléad giuirléid wrap_label aistritheLink to this heading

Ch <label>un an easpa `a shocrú nuair a úsáidtear ``RadioSelect agus CheckboxSelectMultiple le MultiWidget, tá an t-athróg comhthéacs wrap_label le feiceáil anois mar thréith de gach rogha. Mar shampla, i dteimpléad saincheaptha input_option.html, athraigh {% if wrap_label%} go {% if widget.wrap_label%}.

Fianáin SamesiteLink to this heading

Socraíonn na fianáin a úsáidtear le haghaidh django.contrib.sessions, django.contrib.messages`, agus cosaint CSRF Django anois an bhratach SameSite go Lax` de réir réamhshocraithe. Ní sheolfaidh brabhsálaithe a bhfuil meas acu leis an bhratach seo ar na fianáin seo ar iarratais trasbhunús Má tá tú ag brath ar an sean-iompar, socraigh an socrú:setting: SESSION_COOKIE_SAMESITE agus/nó :setting: CSRF_COOKIE_SAMESITE go None.

Breithnithe maidir leis an gcead “féach” samhail nuaLink to this heading

Caithfidh foirmeacha riaracháin saincheaptha an cás amharc amháin a chur san áireamhLink to this heading

Leis an gcead nua “amharc”, d'fhéadfadh foirmeacha riaracháin saincheaptha atá ann cheana earráidí a ardú nuair nach bhfuil an cead athraithe ag úsáideoir mar d'fhéadfadh an fhoirm rochtain a fháil ar réimsí nach bhfuil Déan é seo a shocrú trí:meth: .modeladmin.get_form agus seiceáil an bhfuil na ceadanna “athraithe” ag an úsáideoir agus an fhoirm réamhshocraithe a thabhairt ar ais mura bhfuil:

Code
class MyAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
        if not self.has_change_permission(request, obj):
            return super().get_form(request, obj, **kwargs)
        return CustomForm

D'fhéadfadh cead amharc réamhshocraithe nua rochtain nach dteastaíonn a cheLink to this heading

Má tá cead saincheaptha agat le ainm cóid den fhoirm view_ <modelname>, ligfidh an láimhseáil cead amharc nua sa riarachán rochtain amharc ar an liosta athraithe agus ar leathanaigh mionsonraithe do na samhlacha sin. Mura dteastaíonn sé seo, ní mór duit d'ainm cóid cead saincheaptha a athrú.

IlghnéitheachLink to this heading

  • Méadaítear an leagan íosta tacaithe de mysqlclient` ó 1.3.3 go 1.3.7.

  • Baintear tacaíocht do SQLite <3.7.15.

  • Athraítear formáid dáta treoir `Expires Set-Cookie` go dtí seo a leanas: rfc: 7231 #section -7.1.1.1 in ionad caighdeán fianán Netscape. Baintear na hiphens atá i láthair i ddátaí mar Máirt, 25-Nollaig 2018 22:26:13 GMT. Níor chóir go mbeadh an t-athrú seo ach cosmaideach ach amháin b'fhéidir do bhrabhsálaithe seanmhara nach ndéanann an formáid nua a pháirseáil.

  • Is argóint riachtanach é allowed_hosts` anois de API príobháideach ``django.utils.http.is_safe_url () ``.

  • Úsáideann an tréith multiple a rinneadh ag an n:class: ~django.forms.SelectMultiple giuirléid anois comhréir boolean HTML5 seachas multiple="multiple" XHTML.

  • <br>Ní chuimsíonn HTML a rindreáiltear ag giuirléidí foirme scall deiridh ar eilimintí neamhní a thuilleadh, m.sh. ``` Níl sé seo comhoiriúnach laistigh de XHTML, cé gur úsáid roinnt giuirléidí gnéithe de HTML5 cheana féin mar thréithe boolean.

  • Athraítear luach roghanna folmha: Class: ~django.forms.SelectDateWidget ó 0 go sreang folamh, a d'fhéadfadh roinnt coigeartúcháin a bheith ag teastáil go príomha i dtástálacha a dhéanann comparáid idir HTML.

  • User.has_usable_password() and the is_password_usable() function no longer return False if the password is None or an empty string, or if the password uses a hasher that's not in the PASSWORD_HASHERS setting. This undocumented behavior was a regression in Django 1.6 and prevented users with such passwords from requesting a password reset. Audit your code to confirm that your usage of these APIs don't rely on the old behavior.

  • Ós rud é go bhfuil imirce luchtaithe anois ó chomhaid .pyc`, b'fhéidir go mbeidh ort iad a scriosadh má tá tú ag obair i dtimpeallacht measctha Python 2 agus Python 3.

  • Meaitseálann luach cuardaigh `None mar luach cuardaigh Django.contrib.postgres.fields.jsonField anois rudaí a bhfuil an eochair sonraithe acu agus luach null seachas rudaí nach bhfuil an eochair acu.

  • Athainmnítear an rang CSS riaracháin field-box go fieldbox` chun coimhlintí leis an rang a thugtar do réimsí samhail darb ainm “bosca” a chosc.

  • Ós rud é go bhfuil gníomhaíochtaí.html, change_list_results.html, date_hierarchy.html, page.html, prepopulated_fields_js.html, search_form.html, `` search_form.html`` , agus is féidir teimpléid submit_line.html a shárú anois in aghaidh na haipe nó in aghaidh na samhla, seans go mbeidh ort teimpléid reatha a athainmniú leis na hainmneacha sin a bhí scríofa chun críche eile.

  • ``QuerySet.raw () ``a thorthaí a choscann anois cosúil le ceisteanna rialta. Úsáid ``iterator () ``mura dteastaíonn caching uait.

  • Tugtar modh ar an ródaire bunachar sonraí: meth: `allow_relations `i gcásanna níos mó. B'fhéidir go gcaithfear ródairí scríofa míchuí a nuashonrú dá réir.

  • Ní dhíghníomhaítear aistriúcháin a thuilleadh sula ndéantar orduithe <management-commands-and-locales>Má éilíonn d'ordú saincheaptha aistriúcháin a dhíghníomhachtú (mar shampla, chun ábhar neamhaistrithe a chur isteach sa bhunachar sonraí), bain úsáid as an nua:ref: @no_translations decorator.

  • Ní cheadaíonn orduithe bainistíochta foirmeacha giorraithe na n-argóintí --socruithe ``agus ``--pythonpath a thuilleadh.

  • Baintear an tairiseach príobháideach Django.db.Models.sql.Constants.Query_Terms. <lookup-registration-api>B'fhéidir gur roghanna oiriúnacha iad na modhanna: Meth: ~.registerlookupMixin.get_lookupMixin.get_lookupMixin.get_lookups.get_lookups agus:ref: Lookup Clárúcháin API `. I gcomparáid leis an tairiseach ``QUERY_TERMS`, tugann siad deis do chód cuntas a thabhairt ar aon chuardach saincheaptha atá cláraithe.

  • Baintear comhoiriúnacht le py-bcrypt` toisc nach bhfuil sé cothabháilte. Úsáid: pypi: bcrypt ina ionad.

Gnéithe atá díscríofa i 2.1Link to this heading

IlghnéitheachLink to this heading

  • Tá an fheidhm GIS ForcerHR díluaite i bhfabhar an fheidhm nua:class: ~django.contrib.gis.db.models.functions.forcePolygOncw.

  • ``django.utils.http.cookie_date () díscoilte i bhfabhr:func: `~django.utils.http.http_date, a leanann formáid an RFC is déanaí.

  • {% load staticfiles%} agus {% load admin_static%} a dhíchur i bhfabhar {% load static%}, a oibríonn mar an gcéanna.

  • django.contrib.staticfiles.templatetags.static () ``díluachtaithe i bhfabhar ``django.templatetags.static.static ().

  • Bainfear tacaíocht d':meth: .inlineModelAdmin.has_Add_Permission modhanna nach nglacann le obj mar an dara argóint seasmhach i Django 3.0.

Gnéithe bainte i 2.1Link to this heading

Tá na gnéithe seo tar éis deireadh a dtimthriall díscrúdaithe bainte amach agus baintear iad i Django 2.1. Féach: Ref: deprecated-features-1.11 le haghaidh sonraí, lena n-áirítear conas úsáid na ngnéithe seo a bhaint.

  • contrib.auth.views.login () ``, `logout (), password_change () `, password_change_done ()`, password_change_done () `, password_reset_done ()`, password_reset_done () `, password_reset_firm ()`, agus ``wordpass_reset_complete () Baintear ``.

  • Baintear an paraiméadar extra_context de contrib.auth.views.logout_then_login () `.

  • Baintear ``django.test.runner.setup_databases () ``.

  • Baintear ``django.utils.translation.string_concat () ``.

  • Ní thacaíonn django.core.cache.backends.memcached.pylibmccache a thuilleadh le socruithe iompraíochta pylibmc a rith mar thréithe barrleibhéil de OPTIONS.

  • Baintear an paraiméadar host de django.utils.http.is_safe_url () `.

  • Baintear an chlib teimpléid {% include%} a thostú ar eisceachtaí a ardaíodh agus iad á rindreáil.

  • Baintear ``databaseintrospection.get_indexes () ``.

  • Éilíonn an modh fíordheimhniú () `chun cúltaca fíordheimhnithe ``iarraidh mar an chéad argóint seasaimh.

  • Baintear an maisitheoir ``django.db.models.permalink () ``.

  • Baintear an socrú USE_ETAGS. Ní shocraíonn CommonMiddleware agus ``django.utils.cache.patch_response_heads () ``ETags a thuilleadh.

  • An Samhail. Baintear tréith _meta.has_auto_field.

  • Tacaíocht url () ``do bhratacha inlíne i ngrúpaí léirithe rialta ( (? i) , (? L) , (? m) , (? s) , agus (? u) ``) baintear.

  • Baintear tacaíocht do mhodhanna Widget.render () gan an argóint renderer.