# Dokumentasi Django 5.2.8

# 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).