Catatan terbitan Django 1.9.2¶
1 Februari 2016
Django 1.9.2 memperbaiki sebuah pemulihan keamanan di 1.9 dan beberapa kesalahan di 1.9.1. Itu juga membuat perubahan ketidaksesuaian kebelakang kecil yang semoga tidak mempengaruhi pengguna lainnya.
Masalah keamanan: Pengguna dengan “change” tetapi tidak “add” perizinan dapat membuat obyek untuk ModelAdmin
dengan save_as=True
¶
Jika ModelAdmin
menggunakan save_as=True
(bukan awalan), admin menyediakan sebuah pilihan ketika menyunting obyek ke “Save as new”. Sebuah pemulihan di Django 1.9 mencegah itu membentuk pengajuan dari pemunculan sebuah kesalahan “Permission Denied” untuk pengguna tanpa perizinan “add”.
Perubahan ketidaksesuaian kebelakang: berkas-berkas .py-tpl
ditulis kembali di cetakan project/app¶
Tambahan dari beberapa sintaksis bahasa cetakan Django pada cetakan aplikasi awalan di Django 1.9 berarti berkas-berkas tersebut sekarang mempunyai beberapa sintaksis Python tidak sah. Ini menyebabkan kesulitan untuk sistem pemaketan yang secara tidak tanpa syarat menyusun-byte berkas-berkas *.py
.
Untuk memperbaiki ini, sebuah akhiran .py-tpl
sekarang digunakan untuk proyek dan berkas-berkas cetakan aplikasi disertakan di Django. Akhiran .py-tpl
diganti dengan .py
oleh perintah startproject
dan startapp
. Sebagai contoh, sebuah cetakan dengan nama berkas manage.py-tpl
akan dibuat sebagai manage.py
.
Harap berkaskan sebuah tiket jika anda mempunyai sebuah penyesuaian cetakan proyek mengandung berkas-berkas .py-tpl
dan menemukan perilaku ini bermasalah.
Perbaikan kesalahan¶
Diperbaiki sebuah pemulihan di
ConditionalGetMiddleware
menyebabkan pemeriksaanIf-None-Match
menjadi selalu mengembalikan HTTP 200 (#26024).Diperbaiki sebuah pemulihan yang disebabkan barang “user-tools” untuk ditampilkan di halaman keluar admin (#26035).
Diperbaiki sebuah kegagalan di sistem terjemahan ketika bahasa saat ini tidak mempunyai terjemahan (#26046).
Diperbaiki sebuah pemulihan yang menyebabkan hari tidak benar untuk dipilih ketika membuka widget kalender admin untuk zonawaktu dari GMT+0100 menjadi GMT+1200 (#24980).
Diperbaiki sebuah pemulihan di popup model terkait sunting admin yang menyebabkan sebuah nilai diloloskan untuk menampilkan di dropdown pilihan dari jendela induk (#25997).
Diperbaiki sebuah pemulihan di 1.8.8 menyebabkan penanganan indeks tidak benar di perpindahan di PostgreSQL ketika menambahkan
db_index=True
atauunique=True
padaCharField
atauTextField
yang sudah memiliki lainnya yang sudah ditentukan, atau ketika memindahkan satu dari mereka dari sebuah bidang yang mempunyai keduanya, atau ketika menambahkanunique=True
pada sebuah bidang yang sudah di daftarkan diunique_together
(#26034).Diperbaiki sebuah pemulihan dimana menentukan sebuah hubungan pada sebuah bidang model abstrak menggunakan nama model string tanpa sebuah app_label tidak lagi terselesaikan acuan itu ke aplikasi model abstrak jika menggunakan model itu di aplikasi lain (#25858).
Diperbaiki sebuah kegagalan ketika menghancurkan basisdata percobaan yang ada pada MySQL atau PostgreSQL (#26096).
Diperbaiki pemeriksaan kue CSRF pada permintaan POST ketika
USE_X_FORWARDED_PORT=True
(#26094).Diperbaiki sebuah kegagalan
QuerySet.order_by()
ketika diurutkan berdasarkan pada bidang hubungan dari modelthrough
ManyToManyField
(#26092).Diperbaiki sebuah pemulihan yang menyebabkan sebuah pengecualian ketika membuat permintaan basisdata pada SQLite dengan lebih dari 2000 parameter ketika
DEBUG
adalahTrue
pada pembagian yang meningkatkan batasan waktu-susunSQLITE_MAX_VARIABLE_NUMBER
menjadi lebih 2000, seperti Debian (#26063).Diperbaiki sebuah kegagalan ketika menggunakan balikan
OneToOneField
diModelAdmin.readonly_fields
(#26060).Diperbaiki sebuah kegagalan ketika memanggil perintah
migrate
di kasus percobaan dengan atributavailable_apps
menunjuk pada sebuah aplikasi dengan perpindahan ditiadakan menggunakan pengaturanMIGRATION_MODULES
(#26135).Disimpan kembali kemampuan untuk peralatan mencoba dan mencari kesalahan untuk menentukan cetakan dari node mana datangnya, bahkan selama pewarisan cetakan atau penyertaan. Sebelumnya pada Django 1.9, alat pencari kesalahan dapat mengakses cetakan asli dari node melalui
Node.token.source[0]
. Ini telah didokumentasikan, API pribadi. Aslinya sekarang tersedia secara langsung pada setiap node menggunakan atributNode.origin
(#25848).Diperbaiki sebuah pemulihan di Django 1.8.5 yang merusak salinan sebuah
SimpleLazyObject
dengancopy.copy()
(#26122).Selalu disertakan
geometry_field
di keluaran penserial GeoJSON tanpa memperhatikan dari parameterfield
(#26138).Diperbaiki widget peta
contrib.gis
ketika menggunakanUSE_THOUSAND_SEPARATOR=True
(#20415).Dibuat formulir tidak sah menampilkan inisial nilai-nilai dari bidang-bidang mereka yang ditiadakan (#26129).