Add basic support for tags on entries :3 cool beans

This commit is contained in:
Danielle McLean 2017-11-20 10:59:03 +11:00
parent e72a6b01f0
commit 1a6ec02664
Signed by: 00dani
GPG key ID: 5A5D2D1AFF12EEC5
6 changed files with 99 additions and 2 deletions

View file

@ -17,6 +17,25 @@ from lemoncurry import requests
ENTRY_KINDS = [(k.id, k.id) for k in kinds.all]
class TagManager(models.Manager):
def from_name(self, name):
tag, created = self.get_or_create(name=name, slug=slugify(name))
return tag
class Tag(models.Model):
objects = TagManager()
name = models.CharField(max_length=255, unique=True)
slug = models.CharField(max_length=255, unique=True)
@property
def url(self):
return reverse('entries:tagged', args=(self.slug,))
class Meta:
ordering = ('name',)
class EntryManager(models.Manager):
def get_queryset(self):
qs = super(EntryManager, self).get_queryset()
@ -36,6 +55,8 @@ class Entry(ModelMeta, TimeStampedModel):
photo = models.ImageField(blank=True)
content = models.TextField()
tags = models.ManyToManyField(Tag, related_name='entries')
in_reply_to = models.CharField(max_length=255, blank=True)
like_of = models.CharField(max_length=255, blank=True)
repost_of = models.CharField(max_length=255, blank=True)