]> gitweb.fperrin.net Git - djsite.git/commitdiff
Implement and use get_absolute_url
authorFrédéric Perrin <frederic.perrin@resel.fr>
Tue, 1 Nov 2016 00:31:40 +0000 (00:31 +0000)
committerFrédéric Perrin <frederic.perrin@resel.fr>
Tue, 1 Nov 2016 00:31:40 +0000 (00:31 +0000)
quotes/models.py
quotes/templates/quotes/display.html

index e23fde52a0a1475496212a1bc421534ce5296028..83bf62b49696e90ce8b758e378d74ebd6a431508 100644 (file)
@@ -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)
@@ -46,6 +50,9 @@ class Author(CommonData):
     def __str__(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"
@@ -79,6 +86,9 @@ class Work(CommonData):
     def __str__(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)
@@ -86,3 +96,6 @@ class Quote(CommonData):
 
     def __str__(self):
         return self.work.author.name + ": " + self.text
+
+    def get_absolute_url(self):
+        return reverse('quotes:onequote', args=[str(self.id)])
index 696f7549eaef1954871d7eca32cffe39b496b63d..d15cc05934294cf41908aa587bf1f5bcf6164d7f 100644 (file)
@@ -14,9 +14,9 @@
          Hide details</a></p>
       <p class="author">
        — <span class="name">
-         <a href="{% url 'quotes:author' quote.work.author.id %}"
+         <a href="{{ quote.work.author.get_absolute_url }}"
             class="author_name">{{ quote.work.author.name }}</a>,
-         <a href="{% url 'quotes:work' quote.work.id %}"
+         <a href="{% quote.work.get_absolute_url }}"
             class="work_name">{{ quote.work.name }}</a>
        </span>
       </p>
@@ -33,7 +33,7 @@
       <p class="tags">
        Tags:
        {% for tag in quote.tags.all %}
-         <a href="{% url 'quotes:tags' tag.id %}" class="tag_link"
+         <a href="{{ tag.get_absolute_url }}" class="tag_link"
            >{{ tag.tag }}</a
            >{% if not forloop.last %}, {% endif %}
         {% endfor %}
@@ -43,6 +43,6 @@
     </div> <!-- /hidden_details -->
   </div>   <!-- /details -->
   <p class="permalink">
-    <a href="{% url 'quotes:onequote' quote.id %}">Permalink</a>
+    <a href="{{ quote.get_absolute_url }}">Permalink</a>
   </p>
 </div>