'Post' 对象没有属性 'get_absolute_url' Django
'Post' object has no attribute 'get_absolute_url' Django
我正在尝试在 Django 中创建站点地图,但出现错误
'Post' object has no attribute 'get_absolute_url'
这是我的anotherfile/sitemap.py
from django.contrib.sitemaps import Sitemap
from somefile.models import Post
class site_map(Sitemap):
changefreq = "daily"
priority = 0.8
def items(self):
return Post.objects.all()
def lastmod(self, obj):
return obj.time_stamp
这是我的 somefile/models.py
class Post(models.Model):
number=models.AutoField(primary_key=True)
slug=models.CharField(max_length=130)
time_stamp=models.DateTimeField(blank=True)
def __str__(self):
return self.number
我从未使用过它,但听起来您的 Post 模型没有 get_absolute_url 方法。
http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/#django.contrib.sitemaps.Sitemap.location
If location isn't provided, the framework will call the
get_absolute_url() method on each object as returned by items().
Model.get_absolute_url()
定义一个 get_absolute_url() 方法来告诉 Django 如何计算对象的规范 URL。对于调用者,此方法应该显示为 return 一个可用于通过 HTTP 引用对象的字符串。
例如:
def get_absolute_url(self):
return "/post/%i/" % self.id
为了确定站点地图中的路径,您需要为制作站点地图的模型实施 get_absolute_url
,因此:
from django.urls import reverse
class Post(models.Model):
number=models.AutoField(primary_key=True)
slug=models.CharField(max_length=130)
time_stamp=models.DateTimeField(blank=True)
def <b>get_absolute_url</b>(self):
return reverse(<i>'name-of-some-view'</i>, kwargs={<i>'para': 'meters'</i>})
def __str__(self):
return self.number
使用reverse(…)
[Django-doc]可以根据视图的名称和相应路径需要的参数计算URL。
我正在尝试在 Django 中创建站点地图,但出现错误
'Post' object has no attribute 'get_absolute_url'
这是我的anotherfile/sitemap.py
from django.contrib.sitemaps import Sitemap
from somefile.models import Post
class site_map(Sitemap):
changefreq = "daily"
priority = 0.8
def items(self):
return Post.objects.all()
def lastmod(self, obj):
return obj.time_stamp
这是我的 somefile/models.py
class Post(models.Model):
number=models.AutoField(primary_key=True)
slug=models.CharField(max_length=130)
time_stamp=models.DateTimeField(blank=True)
def __str__(self):
return self.number
我从未使用过它,但听起来您的 Post 模型没有 get_absolute_url 方法。
http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/#django.contrib.sitemaps.Sitemap.location
If location isn't provided, the framework will call the get_absolute_url() method on each object as returned by items().
Model.get_absolute_url()
定义一个 get_absolute_url() 方法来告诉 Django 如何计算对象的规范 URL。对于调用者,此方法应该显示为 return 一个可用于通过 HTTP 引用对象的字符串。
例如:
def get_absolute_url(self):
return "/post/%i/" % self.id
为了确定站点地图中的路径,您需要为制作站点地图的模型实施 get_absolute_url
,因此:
from django.urls import reverse
class Post(models.Model):
number=models.AutoField(primary_key=True)
slug=models.CharField(max_length=130)
time_stamp=models.DateTimeField(blank=True)
def <b>get_absolute_url</b>(self):
return reverse(<i>'name-of-some-view'</i>, kwargs={<i>'para': 'meters'</i>})
def __str__(self):
return self.number
使用reverse(…)
[Django-doc]可以根据视图的名称和相应路径需要的参数计算URL。