Django电商网站开发问题:向index.html传递两个上下文失效
问题原因与解决方法
你的代码问题出在**render函数的参数使用错误**:Django的render函数仅能接受一个上下文字典作为第三个参数,你传入的第二个字典category会被识别为content_type参数,导致模板无法获取category数据,甚至引发参数类型错误,最终页面无法正常工作。
正确写法(二选一即可)
方法1:合并上下文字典
from django.shortcuts import render, HttpResponse,redirect from .models import * # Create your views here. def index(request): products = Product.objects.all() categories = Category.objects.all() params = {'product': products} params.update({'category': categories}) # 合并两个字典 return render(request, 'index.html', params)
方法2:直接创建包含所有数据的上下文字典
from django.shortcuts import render, HttpResponse,redirect from .models import * # Create your views here. def index(request): products = Product.objects.all() categories = Category.objects.all() context = { 'product': products, 'category': categories } return render(request, 'index.html', context)
修改后,index.html就能同时获取到product和category两个上下文数据了。
内容的提问来源于stack exchange,提问作者Aman Yadav
相关产品推荐
相关产品推荐

