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
相关产品推荐
相关产品推荐

