X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=quotes%2Fmodels.py;h=0d7fe333001e4ee77f58216f1ed102cc9c903343;hb=a842896b4da7101ab117838c7ee90be268dda85b;hp=e23fde52a0a1475496212a1bc421534ce5296028;hpb=0b43566359216637a28247d7f9ab4121931843ed;p=djsite.git diff --git a/quotes/models.py b/quotes/models.py index e23fde5..0d7fe33 100644 --- a/quotes/models.py +++ b/quotes/models.py @@ -1,4 +1,6 @@ from django.db import models +from django.urls import reverse + from localmodels import HTMLField # Create your models here. @@ -13,7 +15,9 @@ class BaseTag(models.Model): class AuthorTag(BaseTag): pass class WorkTag(BaseTag): pass -class QuoteTag(BaseTag): pass +class QuoteTag(BaseTag): + def get_absolute_url(self): + return reverse('quotes:tags', args=[str(self.id)]) class CommonData(models.Model): creation_date = models.DateTimeField(auto_now_add=True) @@ -26,6 +30,11 @@ class CommonData(models.Model): "Notes about the entry; not displayed on \ the public interface") + nb_display = models.BigIntegerField(default=0) + def incr_display(self): + self.nb_display = models.F('nb_display') + 1 + self.save() + class Meta(object): abstract = True @@ -43,9 +52,12 @@ class Author(CommonData): help_text="Date of death (leave blank \ if still alive!)") - def __str__(self): + def __unicode__(self): return self.name + def get_absolute_url(self): + return reverse('quotes:author', args=[str(self.id)]) + # class DatePrecision(models.CharField): # DAY = "D" # MONTH = "M" @@ -76,13 +88,19 @@ class Work(CommonData): tags = models.ManyToManyField(WorkTag, blank=True, help_text='Not implemented yet') - def __str__(self): + def __unicode__(self): return "%s: %s (%s)" % (self.author.name, self.name, self.date) + def get_absolute_url(self): + return reverse('quotes:work', args=[str(self.id)]) + class Quote(CommonData): text = HTMLField() tags = models.ManyToManyField(QuoteTag, blank=True) work = models.ForeignKey(Work) - def __str__(self): + def __unicode__(self): return self.work.author.name + ": " + self.text + + def get_absolute_url(self): + return reverse('quotes:onequote', args=[str(self.id)])