# Dokumentasi Django 4.2.9.dev20231204082947

# Catatan terbitan Django 1.0

Selamat datang di Django 1.0!

We've been looking forward to this moment for over three years, and it's finally here. Django 1.0 represents the largest milestone in Django's development to date: a web framework that a group of perfectionists can truly be proud of.

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:

- Menghubungkan aplikasi anda dari Django 0.96 ke 1.0

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:

- https://docs.djangoproject.com/

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:

New in Django 1.0:

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:

### Refactored admin application

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.

See GeoDjango for details.

### 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 antarmuka 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

A number of features and methods which had previously been marked as deprecated, and which were scheduled for removal prior to the 1.0 release, are no longer present in Django. These include imports of the form library from `django.newforms` (now located simply at `django.forms`), the `form_for_model` and `form_for_instance` helper functions (which have been replaced by `ModelForm`) and a number of deprecated features which were replaced by the dispatcher, file-uploading and file-storage refactoring introduced in the Django 1.0 alpha releases.

## 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:

- Catatan MySQL
- Catatan SQLite
- Catatan Oracle