导航渲染 | 导航链接 | 导航子分类列表页渲染 |
作者:互联网
1. 一对多的查询 根据 类型 ----> 商品 type.xxx_set.all() 对象.表_set.all
2. 多对一查询 根据 商品------>类型 goods.type.name 表明.字段.name
注意 表一: type 表二:goods
1. 调用导航分类
1.1 html 代码
分类链接 {% url 'goods:type_detail' foo.id %} -》 /type_detail/3
foo.id 是栏目id
goods:type_detail : 栏目链接 必须再url 定义空间 app_name = 'goods' :goods 模型名称
<li class="nav-item active"> {% for foo in type_list %} <li class="nav-item"> <a href='{% url 'goods:type_detail' foo.id %}' class="nav-link">{{ foo }}</a> </li> {% endfor %} </li>
1.2 views 代码
# 商品 列表页面 导航分类 def goods_list(request): # 商品列表 goods_list = models.Goods.objects.all() # 分类 type_list = models.Type.objects.all() content = { 'goods_list': goods_list, 'type_list': type_list, } return render(request, 'goods/goods_list.html', content)
1.3 url 代码
app_name = 'goods' from goods.views import goods_list, goods_add, type_detail from django.urls import path from goods import views urlpatterns = [ # 商品添加 path('goods_add/', goods_add, name='goods_add'), # 商品添加 path('goods_list/', goods_list, name='goods_list'), # 商品分类 #path('type_list/', views.type_list, name='type__list'), # 商品分类 列表 path('type_detail/<int:tid>', type_detail, name='type_detail'), ]
2 调用子类 里面所有产品
2.1 views 代码
# 分类 商品列表页面 detail 页面 def type_detail(request, tid): # 调用子类产品列表 type = models.Type.objects.get(id=tid) # 子类显示标题 title = str(models.Type.objects.filter(id=tid).first()) content = { 'type': type, 'title': title } return render(request, 'goods/type_detail.html', content)
2.2 html代码
{% for foo in type.goods_set.all %} <tr> <th scope="row">{{ foo.id }}</th> <td>{{ foo.title }}</td> <td>{{ foo.price }}</td> <td>{{ foo.store_num }}</td> <td>{{ foo.sale_num }}</td> <td>{{ foo.save_num }}</td> <td> <a href="" type="button" class="btn btn-primary btn-sm">编辑</a> <a href="" type="button" class="btn btn-danger btn-sm">删除</a> </td> </tr> {% empty %} <h1> 该分类下暂时无商品 </h1> {% endfor %}
标签:goods,name,渲染,导航,list,detail,列表,foo,type 来源: https://www.cnblogs.com/longly1111/p/16455513.html