Bir Notun Sahibi Vardır
Coddy'nin Django Journey'sinin Kullanıcılar ve Hesaplar bölümünün bir parçası. Ders 8 / 16.
Oturum açmış tüm kullanıcılar aynı not yığınını paylaşır. Notları birbirinden ayırmak için her notta kimin yazdığı kaydedilmelidir: tıpkı bir kitabı yazarına bağlayan gibi bir ForeignKey.
Bir kullanıcıya bağlanmak için User içe aktarmayın. ForeignKey alanını, kullanıcı modelinin adını belirten settings.AUTH_USER_MODEL ayarına yönlendirin (from django.conf import settings satırından sonra); burada bu model "auth.User" olur. Böylece kod, kendi kullanıcı modeli olan bir projede de sorunsuz çalışır.
Bir notu kimin yazdığı hiçbir zaman form alanı değildir: bunu seçebilen bir kullanıcı başka biriymiş gibi yazabilir. Görünüm bu alanı doldurur. form.save(commit=False), nesneyi kaydetmeden oluşturur; böylece görünüm formda bulunmayan bir alanı ayarlayabilir:
order = form.save(commit=False)
order.total = order.quantity * order.unit_price
order.save()Yeni alan için makemigrations ve migrate komutlarını çalıştırın.
Görev
OrtaNote, bir kullanıcıya bağlananowneralanını alır. Bir kullanıcı silindiğinde notları da silinir veuser.notes.all()kullanıcının notlarını listeler.- Yeni bir not, onu yazan ve oturum açmış kullanıcıya ait olur. Formda yalnızca
titlevebodybulunur.
Run'a basın, ada olarak oturum açın (coddy-pass-123 parolasıyla), bir not yazın ve Veri sekmesini açın.
Kendin dene
from django.db import models
class Note(models.Model):
title = models.CharField(max_length=100)
body = models.TextField(blank=True)
created = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ["-created"]
def __str__(self):
return self.title
Kullanıcılar ve Hesaplar bölümündeki tüm dersler
3Kendi Verileriniz
Bir Notun Sahibi VardırYalnızca NotlarımKendi başına pratik yap: Django playground