Catatan terbitan Django 1.0¶
Selamat datang di Django 1.0!
Kami telah mencari kedepan untuk saat ini selama lebih tiga tahun, dan itu akhirnya disini. Django 1.0 mewakili batu peringatan terbesar di pengembangan Django pada hari: sebuah kerangka kerja Jaringan dari kesempurnaan dapat benar-benar dibanggakan.
Django 1.0 mewakili lebih 3 tahun dari pengembangan komunitas sebagai proyek Sumber Terbuka. Django menerima bantuan dari ribuan pengembang, telah diterjemahkan kedalam 50 bahasa, dan hari ini digunakan oleh pengembang pada setiap benua dan dalam setiap macam pekerjaan.
Sebuah catatan riwayat menarik: ketika Django pertama kali terbit di Juli 2005, versi terbitan awal dari Django datang dari gudang internal pada angka perbaikan 8825. Django 1.0 mewakili perbaikan 8961 dari gudang umum kami. Dia kelihatannya sesuai bahwa terbitan 1.0 kami datang pada saat dimana bantuan komunitas mengambil alih yang dibuat secara pribadi.
Kestabilan dan kesesuaian kedepan¶
Terbitan Django 1.0 dengan janji dari kestabilan API dan kesesuaian didepan. dalam kulit kacang, ini berarti bahwa kode anda kembangkan terhadap Django 1.0 akan berlanjut bekerja terhadap 1.1 tidak dirubah, dan anda harus butuh membuat hanya perubahan kecil untuk tiap terbitan 1.x.
Lihat Panduan stabilitas API untuk rincian penuh.
Perubahan bertentangan-kebelakang¶
Django 1.0 mempunyai sejumlah perubahan bertentangan-kebelakang dari Django 0.96. Jika anda mempunyai aplikasi ditulis terhadap Django 0.96 yang anda butuh menautkannya, lihat panduan tautan rincian kami:
Daftar lengkap dari perubahan bertentangan-kebelakang dapat ditemukan pada https://code.djangoproject.com/wiki/BackwardsIncompatibleChanges.
Apa yang baru di Django 1.0¶
banyak!
Sejak Django 0.96, kami telah membuat lebih 4,000 kode penyerahan, memperbaiki lebih dari 2,000 kesalahan, dan menyunting, menambahkan, atau memindahkan sekitar 350,000 baris kode. Kami juga telah menambahkan 40,000 baris dari dokumentasi baru, dan secara hebat meningkatkan apa yang telah ada disana.
Sebenarnya, dokumentasi baru adalah satu dari fitur kesukaan kami dari Django 1.0, jadi kami mungkin juga mulai disana. Pertama, terdapat situs dokumentasi baru:
Dokumentasi telah sangat ditingkatkan, dibersihkan, dan umumnya dibuat mengagumkan. Sekarang terdapat pencarian khusus, indeks, dan lebih.
Kami tidak dapat mungkin mendokumentasikan semuanya yang baru dalam 1.0, tetapi dokumentasi akan menjadi panduan pasti anda. Dimanapun anda melihat sesuatu seperti:
Fitur ini baru di Django 1.0
Anda akan mengetahui bahwa anda mencari sesuatu baru atau berubah.
Sorotan utama lain dari Django 1.0 adalah:
Refaktor aplikasi admin¶
Antarmuka administratif Django (django.contrib.admin
) telah sepenuhnya di refaktor; antarmuka admin sekarang dipisahkan dari pengertian model (tidak ada lagi pernyataan class Admin
dalam model!) penulisan kembali untuk menggunakan pustaka penanganan formulir baru Django (diperkenalkan di terbitan 0.96 sebagai django.newforms
, dan sekarang tersedia sebagai cukup django.forms
) dan merancang kembali dengan perpanjangan dan penyesuaian dalam pikiran. Dokumentasi penuh untuk aplikasi admin tersedia daring di dokumentasi Django resmi:
Lihat acuan admin untuk rinci
Penanganan perbaikan Unicode¶
Internal Django telah di refaktor untuk menggunakan Unicode di seluruhnya; ini secara drastis menyederhanakan tugas dari berhubungan dengan isi bukan Eropa Barat dan data di Django. Sebagai tambahan, fungsi kegunaan telah disediakan untuk memudahkan dapat digunakan dengan pustaka pihak ketiga dan sistem yang mungkin tidak menangani Unicode anggun. Rincian tersedia di dokumentasi penanganan Unicode Django.
Lihat Data Unicode.
ORM yang diperbaiki¶
Pemeta hubungan obyek Django -- komponen yang menyediakanpemetaan diantara kelas-kelas model Django dan basisdata anda, dan yang menengahi permintaan basisdata anda -- telah secara dramatis diperbaiki oleh refaktor besar-besaran. Untuk kebanyakan pengguna Django ini adakah kesesuaian kebelakangl API muka-umum untuk permintaan basisdata menjalani seikit kecil perubahan, tetapi kebanyakan dari perbaharuan mengambil tempat di internal ORM. Panduan pada perubahan berdasarkan refaktor ini, adalah available on the Django wiki.
Pelolosan otomatis dari variabel cetakan¶
Untuk menyediakan perbaikan keamanan terhadap kerentanan cross-site scripting (XSS), Sistem cetakan Django sekarang otomatis meloloskan keluaran dari variabel. Perilaku ini dapat dikonfigurasi, dan mengizinkan kedua variabel dan bangunan cetakan lebih besar untuk ditandai sebagai aman (tidak membutuhkan pelolosan) atau tidak aman (membutuhkan pelolosan). Panduan penuh pada fitur ini di dokumentasi untuk etiket autoescape
.
django.contrib.gis
(GeoDjango)¶
Sebuah proyek lebih dari setahun dalam membuat, ini menambahkan dukungan GIS (Geographic Information Systems) kelas dunia pada Django, dalam formulir dari sebuah aplikasi contrib
. Dokumentasinya saat ini sedang dirawat secara ekternal, dan akan digabungkan kedalam dokumentasi Django segera. Terima kasih sebesar-besarnya ditujukan ke Justin Bronn, Jeremy Dunck, Brett Hoerner dan Travis Pinney dalam membuat dan melengkapi fitur ini.
Lihat http://geodjango.org/ untuk rincian.
Penyimpanan berkas dapat ditanam¶
FileField
dan ImageField
siap pakai Django sekarang dapat mengambil keuntungan dari backend penimpanan berkas dapat ditanam, mengizinkan penyesuaian luas dari dimana dan bagaimana mengunggah berkas-berkas disimpan oleh Django. Untuk rincian, lihat the files documentation; terima kasih besar ditujukan kepada Marty Alchin untuk menaruh di pekerjaan keras untuk mendapatkan ini selesai.
Kesesuaian Jython¶
Terima kasih kepada banyak kerja dari Leo Soto selama Google Summer of Code project, basiskode Django telah direfaktor untuk memindahkan ketidaksesuaian dengan ``Jython`_, sebuah penerapan dari Python ditulis dalam Java, yang menjalankan kode Python pada Java Virtual Machine. Django sekarang cocok dengan terbitan Jython 2.5 yang akan datang.
Hubungan umum di formulir dan admin¶
Kelas-kelas sekarang disertakan dalam django.contrib.contenttypes
yang dapat digunakan untuk mendukung hubungan umum dalam kedua antarmua admin dan formulir pengguna akhir. Lihat the documentation for generic relations untuk rincian.
Perbedaan INSERT
/UPDATE
¶
Meskipun perilaku awal Django dari memiliki sebuah metode save()
model otomatis menentukan apakah untuk melakukan sebuah INSERT
atau sebuah UPDATE
pada tingkat SQL adalah cocok untuk mayoritas dari kasus, ada keadaan kadang-kadang dimana memaksa satu atau lainnya adalah berguna. Sebagai hasil, mode sekarang dapat mendukung parameter tambahan pada save()
yang dapat memaksa tindakan khusus.
Lihat Memaksa sebuah INSERT atau UPDATE untuk rincian.
Pisah CacheMiddleware
¶
CacheMiddleware
Django telah dipisah kedalam tiga kelas-kelas: CacheMiddleware
itu sendiri masih ada dan menyimpan semua kegunaan sebelumnya, tetapi itu sekarang dibangun dari dua middleware kelas terpisah yang menangani dua bagian dari penyimpanan sementara(memasukkan kedalam dan membaca dari penyimpanan) secara terpisah, menawarkan tambahan fleksibel untuk keadaan dimana menggabungkan fungsi ini kedalam middleware tunggal menjadi masalah.
Rincian penuh, termasuk catatan terbaru pada penggunaan sesuai, berada di the caching documentation.
Refaktor django.contrib.comments
¶
Sebagai bagian dari Google Summer dari Code project, Thejaswi Puthraya membawa penulisan kembali utama dan refaktor sistem komentar gabungan Django, sangat meningkatkan fleksibilitas dan penyesuaian.
Pemindahan fitur usang¶
Sejumlah fitur dan metode yang sebelumnya telah ditandai sebagai diusangkan, dan yang telah dijadwalkan untuk dipindahkan sebelumnya pada terbitan 1.1, tidak lagi hadir di Django. Ini termasuk impor dari pustaka formulir dari django.newforms
(sekarang bertempat cukup di django.forms
), fungsi pembantu form_for_model
dan form_for_instance
(yang telah diganti oleh ModelForm
) dan sejumlah fitur diusangkan yang diganti oleh pengirim, pengunggahan berkas dan refaktor penyimpanan berkas diperkenalkan dalam terbitan alpha Django 1.0.
Masalah yang diketahui¶
Kami telah melakukan terbaik kami untuk membuat Django 1.0 sekokoh mungkin, tetapi sayangnya ada sepasang masalah yang kami ketahui di terbitan.
Warisan model banyak-tabel dengan to_field
¶
Jika anda sedang menggunakan multiple table model inheritance, sadarilah dari surat keberatan ini: model anak menggunakan penyesuaian parent_link
dan to_field
akan menyebabkan kesalahan kesatuan basisdata. Sekumpulan model seperti berikut adalah tidak sah:
class Parent(models.Model):
name = models.CharField(max_length=10)
other_value = models.IntegerField(unique=True)
class Child(Parent):
father = models.OneToOneField(Parent, primary_key=True, to_field="other_value", parent_link=True)
value = models.IntegerField()
Kesalahan ini akan diperbaiki di terbitan selanjutnya dari Django.
Peringatan dengan dukungan basisdata tertentu¶
Django berusaha mendukung sebanyak fitur yang mungkin pada semua backend basisdata. Bagaimanapun, tidak semua backend basisdata sama, dan dalam tertentu banyak dari basisdata didukung sangat beda dari versi ke versi. Itu adalah ide bagus untuk memeriksa notes on supported database kami: