Compartilhando uma nota
Parte da seção Usuários e contas do Journey de Django da Coddy. Lição 15 de 16.
As anotações são privadas, e isso é o certo para a maioria delas. Às vezes, você quer mostrar uma para um amigo: uma receita, uma lista de leitura. Nesta lição e na próxima, você vai adicionar o compartilhamento somente para leitura.
O compartilhamento começa como uma escolha feita pelo proprietário, armazenada na anotação: um BooleanField, verdadeiro ou falso. Uma nova anotação deve permanecer privada, a menos que o proprietário diga o contrário, então o valor padrão é False. Em um ModelForm, um BooleanField se transforma em uma caixa de seleção.
Aqui, o formulário pode definir o campo, pois essa é uma escolha do proprietário sobre a própria anotação. owner é diferente: nenhum formulário pode defini-lo.
Desafio
Fácil- Adicione um campo
sharedaNote: umBooleanFieldque sejaFalsepara uma nota nova. - O proprietário pode marcá-lo no formulário da nota ao escrever ou editar.
- A página de uma nota compartilhada exibe
Anyone with the link can read this note.
Clique em Executar, entre como ada (senha coddy-pass-123), edite uma nota e marque shared.
Experimente você mesmo
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
Todas as lições de Usuários e contas
Pratique por conta própria: Playground de Django