Sebuah Catatan Memiliki Pemilik
Termasuk bagian Pengguna dan Akun dalam perjalanan Django di Coddy. Pelajaran 8 dari 16.
Semua pengguna yang sudah masuk berbagi satu tumpukan catatan. Agar bisa membedakannya, setiap catatan harus mencatat siapa yang menulisnya: ForeignKey, seperti hubungan antara buku dan pengarangnya.
Untuk menautkan ke pengguna, jangan impor User. Arahkan ForeignKey ke pengaturan settings.AUTH_USER_MODEL (setelah from django.conf import settings), yang menentukan model pengguna, "auth.User" di sini. Dengan begitu, kode tetap berfungsi di proyek yang memiliki model penggunanya sendiri.
Siapa yang menulis catatan tidak pernah menjadi field formulir: pengguna yang bisa memilihnya dapat menulis sebagai orang lain. View mengisinya. form.save(commit=False) membuat object tanpa menyimpannya, sehingga view dapat mengatur field yang tidak dimiliki formulir:
order = form.save(commit=False)
order.total = order.quantity * order.unit_price
order.save()Jalankan makemigrations dan migrate untuk field baru.
Tantangan
SedangNotemendapat fieldowneryang terhubung ke pengguna. Menghapus pengguna akan menghapus catatan mereka, danuser.notes.all()menampilkan daftar catatan pengguna.- Catatan baru menjadi milik pengguna yang sedang masuk dan menulisnya. Formulir hanya menyimpan
titledanbody.
Tekan Jalankan, masuk sebagai ada (kata sandi coddy-pass-123), tulis catatan, lalu buka tab Data.
Coba sendiri
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
Semua pelajaran di Pengguna dan Akun
3Datamu Sendiri
Sebuah Catatan Memiliki PemilikHanya CatatankuLatihan sendiri: Playground Django