Django数据库分类数据无法在HTML下拉菜单显示问题求助
解决Django导航栏下拉菜单分类不显示问题
你的问题核心是视图返回的上下文变量名和模板中使用的变量名不匹配,具体修正步骤如下:
- 修正视图函数的返回键名
视图里返回的字典键是'all categories'(包含空格),但模板中引用的是all_categories(下划线),Django模板无法识别带空格的变量名。修改view.py代码:
def categories(request): all_categories = Category.objects.all() # print(all_categories) return {'all_categories': all_categories}
- 确认上下文处理器配置
你已经在settings.py的TEMPLATES配置中添加了'store.views.categories',确保该配置位于OPTIONS.context_processors列表内,示例如下:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', # 你的上下文处理器 'store.views.categories', ], }, }, ]
- 模板循环验证
模板中的{% for category in all_categories %}现在能正确匹配上下文里的变量,重启服务器后,下拉菜单应该会正常渲染所有分类项。
内容的提问来源于stack exchange,提问作者Besimin A.
相关产品推荐
相关产品推荐

