import uuid from django.db import models from django.urls import reverse class Note(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) owner = models.ForeignKey( "lyric.User", related_name="notes", blank=True, null=True, on_delete=models.CASCADE, ) shared_with = models.ManyToManyField( "lyric.User", related_name="shared_notes", blank=True, ) @property def name(self): return self.item_set.first().text def get_absolute_url(self): return reverse("view_note", args=[self.id]) class Item(models.Model): text = models.TextField(default="") note = models.ForeignKey(Note, default=None, on_delete=models.CASCADE) class Meta: ordering = ("id",) unique_together = ("note", "text") def __str__(self): return self.text