其他分享
首页 > 其他分享> > 导航渲染 | 导航链接 | 导航子分类列表页渲染 |

导航渲染 | 导航链接 | 导航子分类列表页渲染 |

作者:互联网

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