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.
Thử thách
DễCho phép chủ sở hữu chia sẻ ghi chú.
- Trong
notes/models.py, thêm trườngsharedvàoNote: mộtBooleanFieldcó giá trịFalsecho ghi chú mới. - Trong
notes/forms.py, thêm trường này vàoNoteFormđể chủ sở hữu có thể đánh dấu. - 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