/ / get_absolute_url - Plan du site de Django - Python, Django

get_absolute_url - Plan du site de Django - Python, Django

Je veux activer la génération de sitemap dans Django. Je vais donc expliquer ce qui suit. ici

modèle:

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),
}

Mais j'ai une erreur sur /sitemap.xml: L'objet "Car" n'a pas d'attribut "get_absolute_url. Comment le réparer? J'ai besoin de créer des classes, comment ça a expliqué ici? Ou je ne peux utiliser que GenericSitemap? J'ai commenté "flatpages", parce que je ne les utilise pas. Merci.

Mise à jour 1: dans URLS.py:

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

Réponses:

15 pour la réponse № 1

Vous devez définir get_absolute_url pour le modèle:

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})

Veuillez mettre à jour la méthode d'URL inverse en fonction de l'URL que vous avez définie.