/ / get_absolute_url - Djangos Sitemap - Python, Django

get_absolute_url - Djangos sitemap - python, django

Ich möchte die Sitemap-Generierung in Django aktivieren, deshalb mache ich Folgendes, wie es erklärt wurde Hier

Modell:

class Car(models.Model):
def __unicode__(self):
return self.name
name = models.CharField("Name", max_length=10)
active = models.BooleanField()

URLs:

car_dict = {
"queryset": Car.objects.filter(active=1),
}

sitemaps = {
#"flatpages": FlatPageSitemap,
"car": GenericSitemap(car_dict, priority=0.5),
}

Ich habe jedoch einen Fehler in /sitemap.xml: "Auto" Objekt hat kein Attribut "get_absolute_url". Wie man es repariert? Ich muss ein paar Klassen erstellen, wie es erklärt wurde Hier? Oder kann ich nur GenericSitemap verwenden? Ich habe "flatpages" kommentiert, weil ich sie nicht benutze. Vielen Dank.

Update 1: in URLS.py:

url(r"^car/$", "cars.views.shop"),
url(r"^car/(?P<car_id>d+)/$", "cars.views.producer"),

Antworten:

15 für die Antwort № 1

Sie müssen definieren get_absolute_url für das Modell:

from django.core.urlresolvers import reverse

class Car(models.Model):
name = models.CharField("Name", max_length=10)
active = models.BooleanField()

def __unicode__(self):
return self.name

def get_absolute_url(self):
return reverse("car_details", kwargs={"name":self.name})

Bitte aktualisieren Sie die URL-Reverse-Methode entsprechend der von Ihnen definierten URL.