gpt4 book ai didi

python - 在 Lastmod 上使用聚合 max 函数时,Django 的站点地图框架给出错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:11 25 4
gpt4 key购买 nike

我正在尝试使用 Django 的站点地图框架功能。我已经实现了代码,它适用于当前的文章对象 post_date。但是,我试图使用以下代码获得更准确的上次修改日期,但它给了我错误。错误回溯http://dpaste.com/3Z04VH8

问候。感谢您的帮助

from django.contrib.sitemaps import Sitemap
from django.db.models import Max
from article.models import Article


class ArticleSitemap(Sitemap):
changefreq = 'hourly'
priority = 0.5

def items(self):
return Article.objects.all()

def lastmod(self, obj):
from post.models import Post
return Post.objects.filter(article=obj).aggregate(Max('post_date'))
#return obj.post_date

最佳答案

lastmod Sitemap中的方法类需要返回 datetime目的。相反,您将返回一个字典(这就是 aggregate 将生成的字典) - 这是无效的。

您需要从该字典内部获取数据并返回:

result = Post.objects.filter(article=obj).aggregate(Max('post_date'))
# result will look something like {'post_date__max': Datetime('2017-12-06')}
return result['post_date__max']

关于python - 在 Lastmod 上使用聚合 max 函数时,Django 的站点地图框架给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47686487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com