לפתק יש בעלים
חלק מהיחידה משתמשים וחשבונות במסלול ה-Django של Coddy. שיעור 8 מתוך 16.
כל המשתמשים המחוברים חולקים ערימה אחת של הערות. כדי להבחין ביניהן, כל הערה צריכה לתעד מי כתב אותה: ForeignKey, כמו זה שמקשר בין ספר למחבר שלו.
כדי לקשר למשתמש, אל תייבא את User. הצבע על ההגדרה settings.AUTH_USER_MODEL באמצעות ForeignKey (אחרי from django.conf import settings), שמציינת את מודל המשתמש, שבמקרה הזה הוא "auth.User". כך הקוד יישאר מתאים גם לפרויקט עם מודל משתמש משלו.
מי כתב הערה לעולם אינו שדה בטופס: משתמש שיכול לבחור את הכותב עלול לכתוב בשם מישהו אחר. התצוגה ממלאת את השדה. form.save(commit=False) בונה את האובייקט בלי לשמור אותו, כך שהתצוגה יכולה להגדיר שדה שאינו מופיע בטופס:
order = form.save(commit=False)
order.total = order.quantity * order.unit_price
order.save()הרץ את makemigrations ואת migrate עבור השדה החדש.
אתגר
בינוני- ל־
Noteנוסף שדהownerשמקשר למשתמש. מחיקת משתמש מוחקת את ההערות שלו, ו־user.notes.all()מציג את ההערות של המשתמש. - הערה חדשה שייכת למשתמש המחובר שכתב אותה. הטופס שומר רק את
titleואתbody.
לחצו על Run, התחברו בתור ada (סיסמה coddy-pass-123), כתבו הערה ופתחו את הכרטיסייה נתונים.
נסו בעצמכם
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
כל השיעורים ביחידה משתמשים וחשבונות
תרגלו בעצמכם: Django אונליין