Menu
CoddyTech

Chia sẻ ghi chú

Thuộc phần Người dùng và tài khoản trong hành trình Django của Coddy. Bài học 15 trên 16.

Ghi chú thường ở chế độ riêng tư, và như vậy là phù hợp với hầu hết ghi chú. Đôi khi bạn muốn chia sẻ một ghi chú với bạn bè, chẳng hạn như công thức nấu ăn hoặc danh sách sách cần đọc. Trong bài học này và bài tiếp theo, bạn sẽ thêm tính năng chia sẻ chỉ đọc.

Chia sẻ là lựa chọn của chủ sở hữu, nên ghi chú lưu lựa chọn đó trong một BooleanField, với giá trị True hoặc False. Ghi chú mới phải ở chế độ riêng tư, trừ khi chủ sở hữu chọn cách khác, nên giá trị mặc định là False. Trong một ModelForm, BooleanField sẽ trở thành hộp kiểm.

Ở đây, biểu mẫu có thể đặt giá trị cho trường này vì đó là lựa chọn của chủ sở hữu về ghi chú của chính họ. owner thì khác: không biểu mẫu nào được phép đặt giá trị này.

challenge icon

Thử thách

Dễ

Cho phép chủ sở hữu chia sẻ ghi chú.

  1. Trong notes/models.py, thêm trường shared vào Note: một BooleanField có giá trị False cho ghi chú mới.
  2. Trong notes/forms.py, thêm trường này vào NoteForm để chủ sở hữu có thể đánh dấu.
  3. Trong note_detail.html, chỉ hiển thị Anyone with the link can read this note. khi ghi chú được chia sẻ.

Đăng nhập bằng tài khoản ada (mật khẩu coddy-pass-123), đánh dấu Shared trên một ghi chú rồi lưu: trang ghi chú sẽ hiển thị Anyone with the link can read this note.

Tự làm thử

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

Tất cả bài học trong Người dùng và tài khoản

Tự luyện tập: Playground Django