在一组 QuerySet 上使用 Sorted

Using Sorted on a set of a QuerySet

我有这个页面模型:

class BlogPostPage(Page):
    date_published= models.DateField('Published date', blank=True, null=True)
    intro= models.CharField(max_length=250)
    body = RichTextField(blank=True)
    header_image = models.ForeignKey('wagtailimages.Image', blank=True, null=True,
    on_delete=models.SET_NULL, related_name='+')
    tags = ClusterTaggableManager(through='blog.BlogPageTag', blank=True)
    categories = ParentalManyToManyField('blog.BlogCategory', blank=True)

def get_context(self, request):
        context = super().get_context(request)
        all_categories = []
        for post in self.get_siblings(inclusive=True):
            all_categories +=post.specific.categories.all()
        all_categories = sorted(set(all_categories))

        context['all_categories']= all_categories
        return context

访问页面时出现类型错误:

TypeError at /blog/xxx/

'<' not supported between instances of 'BlogCategory' and 'BlogCategory'

要求提供关于为什么会发生这种情况以及如何避免这种情况的意见。

您可以根据key functionssorted定义key参数。

但我不确定 + 是否允许用于:all_categories +=post.specific.categories.all()