Menu
CoddyTech

مشاركة ملاحظة

جزء من قسم المستخدمون والحسابات في رحلة Django على Coddy. الدرس 15 من 16.

الملاحظات خاصة، وهذا مناسب لمعظمها. أحيانًا تريد أن تعرض إحداها على صديق: وصفة أو قائمة قراءة. خلال هذا الدرس والدرس التالي، ستضيف إمكانية المشاركة للقراءة فقط.

المشاركة خيار يحدده المالك، لذا تُخزَّن في الملاحظة ضمن BooleanField بقيمة True أو False. يجب أن تظل الملاحظة الجديدة خاصة ما لم يقرر المالك خلاف ذلك، لذا تكون قيمتها الافتراضية False. في ModelForm، يتحول BooleanField إلى مربع اختيار.

هنا، يجوز للنموذج تعيين هذا الحقل، لأنه يعبر عن اختيار المالك بشأن ملاحظته. أما owner فمختلف: لا يجوز لأي نموذج تعيينه.

challenge icon

التحدي

سهل

دع المالك يشارك ملاحظة.

  1. في notes/models.py، أضف الحقل shared إلى Note: حقل BooleanField تكون قيمته False للملاحظة الجديدة.
  2. في notes/forms.py، أضف الحقل إلى NoteForm حتى يتمكن المالك من تحديده.
  3. في 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