20 Mei 2015
Django 1.8.2 memperbaiki masalah keamanan dan beberapa kesalahan di 1.8.1.
cached_db
¶Sebuah perubahan pada session.flush()
di backend sesi cached_db
di Django 1.8 salah menyetel kunci sesi ke sebuah string kosong daripada None
. Sebuah string kosong diperlakukan sebagai kunci sesi sah dan kue sesi disetel sesuai dengan itu. Pengguna aapapun dengan sebuah string kosong di kue sesi mereka akan menggunakan penyimpanan sesi sama. session.flush()
dipanggil oleh django.contrib.auth.logout()
dan, lebih serius, dengan django.contrib.auth.login()
ketika seorang pengguna mengganti akun. Jika seorang pengguna masuk dan masuk kembali ke akun berbeda (tanpa keluar) sesi dibilas untuk menghindari penggunaan kembali. Setela sesi dibilas (dan kunci sesinya menjadi ''
) rincian akun disetel pada sesi dan sesi disimpan. Pengguna apapun dengan sebuah string kosong di kue sesi mereka akan sekarang masuk ke akun itu.
Case
sama di sebuah permintaan (#24752).Case
. Sebagai contoh, bubuhi keterangan sebuah permintaan dengan pernyataan Case
dapat tidak diharapkan menyaring hasil (#24766).Q
dalam pernyataan. Kasus-kasus seperti Case(When(~Q(friends__age__lte=30)))
mencoba membangkitkan sebuah sub permintaan yang menghasilkan sebuah kegagalan (#24705).ForeignKey.get_db_prep_value()
sehingga ForeignKey
itu menunjuk ke UUIDField
dan mewarisi pada model dengan primary key UUIDField
bekerja dengan benar (#24698, #24712).isnull
untuk HStoreField
(#24751).SESSION_COOKIE_DOMAIN
(#24799).postgres
, Django sekarang jatuh kebelakang ke basisdata awalan ketika itu secara biasa membutuhkan hubungan "no database" (#24791).ForeignKey
contrib.admin
ketika itu digunakan dalam sebuah baris dengan bidang lain (#24784).Des 02, 2017