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 pemeriksaan If-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 atau unique=True pada CharField atau TextField yang sudah memiliki lainnya yang sudah ditentukan, atau ketika memindahkan satu dari mereka dari sebuah bidang yang mempunyai keduanya, atau ketika menambahkan unique=True pada sebuah bidang yang sudah di daftarkan di unique_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 model through ManyToManyField (#26092).
  • Diperbaiki sebuah pemulihan yang menyebabkan sebuah pengecualian ketika membuat permintaan basisdata pada SQLite dengan lebih dari 2000 parameter ketika DEBUG adalah True pada pembagian yang meningkatkan batasan waktu-susun SQLITE_MAX_VARIABLE_NUMBER menjadi lebih 2000, seperti Debian (#26063).
  • Diperbaiki sebuah kegagalan ketika menggunakan balikan OneToOneField di ModelAdmin.readonly_fields (#26060).
  • Diperbaiki sebuah kegagalan ketika memanggil perintah migrate di kasus percobaan dengan atribut available_apps menunjuk pada sebuah aplikasi dengan perpindahan ditiadakan menggunakan pengaturan MIGRATION_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 atribut Node.origin (#25848).
  • Diperbaiki sebuah pemulihan di Django 1.8.5 yang merusak salinan sebuah SimpleLazyObject dengan copy.copy() (#26122).
  • Selalu disertakan geometry_field di keluaran penserial GeoJSON tanpa memperhatikan dari parameter field (#26138).
  • Diperbaiki widget peta contrib.gis ketika menggunakan USE_THOUSAND_SEPARATOR=True (#20415).
  • Dibuat formulir tidak sah menampilkan inisial nilai-nilai dari bidang-bidang mereka yang ditiadakan (#26129).
Back to Top