0Pricing
Django Academy · Ders

Profiller için OneToOneField

Bir modeli eşleştirilmiş bir kayıtla genişletin.

Profiller için OneToOneField, CoddyKit'te ücretsiz bir Django Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Django Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Django Academy kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Exactly One Each Way

Sometimes a row pairs with exactly one other row, both ways. That is a one-to-one relationship, perfect for splitting data cleanly.

The Profile Pattern

The classic use is a user profile: each user gets one profile, and each profile belongs to one user. Extra fields live separately.

Declaring OneToOneField

Add a OneToOneField pointing at the other model. It behaves like a ForeignKey with a built-in uniqueness guarantee.

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

Unique Under the Hood

A OneToOneField is really a ForeignKey marked unique. That constraint stops two profiles from ever sharing one user.

on_delete Still Applies

Like any link, it needs on_delete. With CASCADE, deleting the user removes their profile too in one step.

user = models.OneToOneField(User, on_delete=models.CASCADE)

Why Not Just Add Fields?

You could pile fields onto the original model, but a separate profile keeps it tidy and avoids touching tables you do not own.

Forward Access

From the profile, read the linked user straight through the field. It returns the single connected object.

profile = Profile.objects.first()
print(profile.user.username)

Reverse Access

The reverse side is special: from a user you reach the profile with a lowercase model name, no _set suffix needed.

user = User.objects.first()
print(user.profile.bio)

Creating a Profile

Make a profile by passing the user it pairs with. The unique constraint blocks a second profile for that same user.

Profile.objects.create(user=user, bio="Hello!")

Auto-Creating with Signals

A common trick is a post_save signal that builds a profile the moment a user is created, so the pair always exists.

Querying Across the Pair

Filter through the link with the double underscore, reaching the profile's fields from the user side or vice versa.

User.objects.filter(profile__bio__icontains="django")

Quick Check

Each user must have at most one profile, and each profile one user. Which field models this?

Recap

Great job! A OneToOneField pairs two rows uniquely, and the reverse is reached by the model's lowercase name. 👤

Sıkça Sorulan Sorular

“Profiller için OneToOneField” dersi ücretsiz mi?

Evet — “Profiller için OneToOneField” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Django Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Django Academy kursu toplamda 4 dersten oluşur.

“Profiller için OneToOneField” dersinde ne öğreneceğim?

Bir modeli eşleştirilmiş bir kayıtla genişletin. Django Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Django Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Django Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Profiller için OneToOneField” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Django Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Django Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. ForeignKey ve on_delete
  2. ManyToManyField ve Through Modelleri
  3. Profiller için OneToOneField
  4. related_name ve Tersine Aramalar
← Django Academy Sayfasına Dön