0Pricing
Django Academy · Pelajaran

ForeignKey dan on_delete

Modelkan hubungan satu-ke-banyak dan perilaku penghapusan

ForeignKey dan on_delete adalah pelajaran Django Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Django Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Django Academy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Linking Two Tables

Real data connects: a book has an author, an order has a customer. A ForeignKey is how one model points to another.

One-to-Many at a Glance

A ForeignKey models a one-to-many link. One author can have many books, but each book belongs to exactly one author.

Declaring a ForeignKey

Add a field of type ForeignKey and point it at the related model. Django stores the link as an id column behind the scenes.

class Book(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

The _id Column

In the database, an author ForeignKey becomes an author_id column holding the other row's primary key. That number is the actual link.

on_delete Is Required

Every ForeignKey needs on_delete. It tells Django what to do with this row when the row it points to is deleted.

CASCADE Deletes Children

CASCADE deletes this row too when its parent goes. Remove an author and all their books vanish with them.

author = models.ForeignKey(Author, on_delete=models.CASCADE)

PROTECT Blocks Deletion

Use PROTECT to refuse the delete while related rows exist. Django raises an error instead of removing the parent.

author = models.ForeignKey(Author, on_delete=models.PROTECT)

SET_NULL Keeps the Child

SET_NULL keeps the row but clears the link, setting the column to NULL. It needs null=True on the field to work.

author = models.ForeignKey(Author, null=True, on_delete=models.SET_NULL)

SET_DEFAULT and DO_NOTHING

SET_DEFAULT swaps in the field's default, while DO_NOTHING leaves the database to decide. Reach for these only in special cases.

Accessing the Related Object

From a book instance you read the linked author straight through the field. Django fetches that row for you on demand.

book = Book.objects.first()
print(book.author.name)

Filtering Across the Link

Span the relationship in queries with the double underscore. Reach into the related model's fields directly from filter.

Book.objects.filter(author__name="Ada")

Quick Check

You delete an author but want their books to stay, just unlinked. Which on_delete value fits?

Recap

Nice work! A ForeignKey models one-to-many links, and on_delete decides each row's fate when its parent is removed. 🔗

Pertanyaan yang Sering Diajukan

Apakah pelajaran “ForeignKey dan on_delete” gratis?

Ya — teks lengkap “ForeignKey dan on_delete” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Django Academy, upgrade ke CoddyKit PRO. Kursus Django Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “ForeignKey dan on_delete”?

Modelkan hubungan satu-ke-banyak dan perilaku penghapusan Kamu berlatih Django Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Django Academy?

Tidak diperlukan pengalaman sebelumnya. Django Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “ForeignKey dan on_delete” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Django Academy ini?

Ya. Setiap pelajaran Django Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. ForeignKey dan on_delete
  2. ManyToManyField dan Model Perantara
  3. OneToOneField untuk Profil
  4. related_name dan Pencarian Terbalik
← Kembali ke Django Academy