首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django中“Tech”和“Mobile”的实例之间不支持“<”

django中“Tech”和“Mobile”的实例之间不支持“<”
EN

Stack Overflow用户
提问于 2020-09-18 20:29:23
回答 1查看 16关注 0票数 0

你好,我在试着让two model inside one view (def) to show data in one html page

我用views.py写的,但它显示'<' not supported between instances of 'Tech' and 'Mobile',我不知道有什么问题

Views.py:

代码语言:javascript
复制
def home(request):
    mobileforhome = Mobile.objects.all()
    techforhome = Tech.objects.all()
    results = list(sorted(chain(mobileforhome,techforhome)))

    paginator = Paginator(results,6)
    page = request.GET.get('page')
    results = paginator.get_page(page)

    context = {'results':results}
    return render(request,'website_primary_html_pages/home.html',context=context)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-18 21:12:58

默认情况下,Django模型实例是不可排序的;最简单的解决方案是在sorted()中使用key function来定义顺序。

例如,如果要按两个模型的ID字段排序:

代码语言:javascript
复制
results = list(
    sorted(
        chain(mobileforhome, techforhome),
        key=lambda x: x.id))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63955820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档