You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fork Django-Oscar模板后仪表盘无法填充数据问题求助

搞定Django-Oscar仪表盘无数据的问题

嘿,我一眼就看出问题出在哪了——你用了TemplateView来做仪表盘首页,但Django-Oscar的仪表盘需要的那些订单统计、业务数据,TemplateView根本不会帮你处理啊!它只会单纯渲染模板,所以页面才会空成这样。

给你几个具体的修复步骤:

  • 替换视图基类:别用TemplateView了,直接继承Oscar自带的DashboardIndexView,它已经帮你封装好了所有获取仪表盘数据的逻辑。修改你的views.py代码:
from oscar.apps.dashboard.views import IndexView as OscarIndexView

class IndexView(OscarIndexView):
    def get_template_names(self):
        if self.request.user.is_staff:
            return ['mytemplates/index.html']
        else:
            return ['dashboard/index_nonstaff.html', 'mytemplates/index.html']
  • 检查模板继承关系:你的自定义模板mytemplates/index.html得正确继承Oscar的仪表盘基础模板,这样才能拿到父模板传过来的所有数据。在模板最开头加上:
{% extends 'dashboard/index.html' %}

这样那些订单统计、最近订单的区块就能正常显示数据了。

  • 确认URL配置正确:保证你的项目URL里指向的是这个新的IndexView,而不是Oscar默认的视图,确保自定义视图被正确加载。

再看你发的截图:
空白的仪表盘页面
完全就是TemplateView的典型表现——只有静态模板结构,没有任何动态业务数据,换了基类之后应该就能解决问题了。

内容的提问来源于stack exchange,提问作者Ishmeet Kaur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:04:12