Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django中编程动态站点地图,我的不工作_Django_Sitemap_Sitemap.xml - Fatal编程技术网

如何在django中编程动态站点地图,我的不工作

如何在django中编程动态站点地图,我的不工作,django,sitemap,sitemap.xml,Django,Sitemap,Sitemap.xml,静态部分工作正常,但不会生成我博客应用程序的动态帖子 from django.contrib.sitemaps import Sitemap from django.urls import reverse from .models import Post class PostSitemap(Sitemap): changefreq = "weekly" priority = 0.9 def items(self): return P

静态部分工作正常,但不会生成我博客应用程序的动态帖子

from django.contrib.sitemaps import Sitemap
from django.urls import reverse
from .models import Post

class PostSitemap(Sitemap):
    changefreq = "weekly"
    priority = 0.9

    def items(self):
        return Post.objects.all()
我无法使用我的博客和模型中的Post类获取动态站点地图:

class Post(models.Model):
title=models.CharField(max_length=100)
header_image = models.ImageField(null=True , blank=True, upload_to="images/")
title_tag=models.CharField(max_length=100)
author= models.ForeignKey(User, on_delete=models.CASCADE)
body = RichTextUploadingField(extra_plugins=
['youtube', 'codesnippet'], external_plugin_resources= [('youtube','/static/ckeditor/youtube/','plugin.js'), ('codesnippet','/static/ckeditor/codesnippet/','plugin.js')])
#body = models.TextField()
post_date = models.DateTimeField(auto_now_add=True)
category = models.CharField(max_length=50, default='uncategorized')
snippet = models.CharField(max_length=200)
likes = models.ManyToManyField(User, blank=True, related_name='blog_posts')

def total_likes(self):
    return self.likes.count()

class Meta:
    verbose_name = "Entrada"
    verbose_name_plural = "Entradas"
    ordering = ['-post_date']

def __str__(self):
    return self.title + ' | ' + str(self.author)

def get_absolute_url(self):
    return reverse('home')
如果有人能帮助我,我将非常感激。 URL.py:


简短回答
获取绝对url()
应该实现对象的规范url

以生成站点地图。Django将在每个元素上调用
Sitemap
对象的名称。如果没有定义
.location(…)
方法,如下所示。它将调用模型对象上的

您实现了一个
get\u absolute\u url
方法,但它看起来像:

def get_absolute_url(self):
    return reverse('home')
通常,规范url是:

def get_absolute_url(self):
    return reverse('post_details', kwargs={'pk': self.pk})
def get_absolute_url(self):

返回反向('post_details',kwargs={'pk':self.pk})
但是您的
def get_绝对url(self):
反向到
home
?这意味着所有这些帖子的“细节视图”都是一样的?你解决了。我自己不是程序员,我在最基本的事情上仍然失败,非常感谢。
    path('post/<int:pk>', post_details, name='post_details')
def get_absolute_url(self):
    return reverse('post_details', kwargs={'pk': self.pk})