مشاركة ملاحظة
جزء من قسم المستخدمون والحسابات في رحلة Django على Coddy. الدرس 15 من 16.
الملاحظات خاصة، وهذا مناسب لمعظمها. أحيانًا تريد أن تعرض إحداها على صديق: وصفة أو قائمة قراءة. خلال هذا الدرس والدرس التالي، ستضيف إمكانية المشاركة للقراءة فقط.
المشاركة خيار يحدده المالك، لذا تُخزَّن في الملاحظة ضمن BooleanField بقيمة True أو False. يجب أن تظل الملاحظة الجديدة خاصة ما لم يقرر المالك خلاف ذلك، لذا تكون قيمتها الافتراضية False. في ModelForm، يتحول BooleanField إلى مربع اختيار.
هنا، يجوز للنموذج تعيين هذا الحقل، لأنه يعبر عن اختيار المالك بشأن ملاحظته. أما owner فمختلف: لا يجوز لأي نموذج تعيينه.
التحدي
سهلدع المالك يشارك ملاحظة.
- في
notes/models.py، أضف الحقلsharedإلىNote: حقلBooleanFieldتكون قيمتهFalseللملاحظة الجديدة. - في
notes/forms.py، أضف الحقل إلىNoteFormحتى يتمكن المالك من تحديده. - في
note_detail.html، اعرضAnyone with the link can read this note.فقط عندما تكون الملاحظة مشتركة.
سجّل الدخول باسم ada (كلمة المرور coddy-pass-123)، وحدد Shared في ملاحظة واحفظها: ستعرض صفحتها Anyone with the link can read this note.
جرّب بنفسك
from django.conf import settings
from django.db import models
class Note(models.Model):
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="notes")
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
جميع دروس المستخدمون والحسابات
تدرّب بنفسك: Playground لـ Django