django实现列表页到详情页的数据传递

前言: 从列表页跳转详情页的时候,如果不将session保存下来,则在详情页刷新时,会导致无数据,因为在跳转的时候将商品id传入到了详情页,但刷新之后id就不在了,所以要将id进行持久化的存储

// 在列表页点击跳转时,需要路由携带参数进行跳转,将商品id传给详情页,这个时候就要给sessionStorage把这个id值传过去
godetail(id){
            this.$router.push({'name':'detail',params:{'id':id}})
            sessionStorage.setItem('ydid',id)
        },
// 在详情页加载的时候
mounted(){
        let id = this.$route.params.id  // 拿到当前商品的id
        if(id==undefined && sessionStorage.ydid==undefined){
            this.$router.push('list')
            return
        }
        // path("goods/<int:id>",views.GoodsView.as_view(),name="goods")
        let url = "/api/goods/goods/"+(id?id: sessionStorage.ydid )
        this.$axios.get(url).then((res)=>{
            console.log(res.data)
            this.detailForm.title =  res.data.name
            this.detailForm.title_en =  res.data.en_name
            this.detailForm.price = res.data.price
            this.detailForm.desc = res.data.desc
            this.span_object = res.data.color
            // this.ImgUrl = res.data.color

			// 设置图片  因为图片有好多张
            let imgurl = []
            for(let item of res.data.img){
                let obj = []
                obj.url = item.img
                imgurl.push(obj)
            }
            this.imgUrl = imgurl
            this.ImgUrl = imgurl[0]['url']

        })
    },

ok,到这里既可以几无忌惮的在详情页进行数据刷新

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个使用Python编写的Web开发框架,它提供了强大的工具和功能来简化网站开发过程。在Django实现列表可以通过以下步骤来完成。 首先,我们需要在视图函数中获取要展示的数据列表。可以使用Django提供的模型对象和查询语法来获取数据。例如,我们可以使用以下代码来获取所有的文章列表: ```python from django.shortcuts import render from .models import Article def articles(request): articles = Article.objects.all() return render(request, 'articles.html', {'articles': articles}) ``` 接下来,我们需要在面中展示数据列表。可以使用Django的模板语言来遍历数据并在面中展示。例如,我们可以使用以下代码来展示所有的文章标题: ```html {% for article in articles %} <h2>{{ article.title }}</h2> {% endfor %} ``` 然后,我们需要在面中添加翻功能。可以使用Django提供的分器来实现功能。首先,我们需要在视图函数中导入分器类和分器对象。然后,我们可以将数据列表传递给分器对象,并指定每要展示的数据数量。最后,我们可以在面中添加翻链接,通过调用分器对象的方法来生成翻链接。 在视图函数中导入分器类和分器对象: ```python from django.core.paginator import Paginator def articles(request): articles = Article.objects.all() paginator = Paginator(articles, 10) # 每展示10篇文章 page_number = request.GET.get('page') page_obj = paginator.get_page(page_number) return render(request, 'articles.html', {'articles': page_obj}) ``` 在面中展示数据列表和翻链接: ```html {% for article in articles %} <h2>{{ article.title }}</h2> {% endfor %} <div class="pagination"> {% if page_obj.has_previous %} <a href="?page={{ page_obj.previous_page_number }}">上一</a> {% endif %} <span class="current-page">{{ page_obj.number }}</span> {% if page_obj.has_next %} <a href="?page={{ page_obj.next_page_number }}">下一</a> {% endif %} </div> ``` 通过以上步骤,我们可以在Django实现列表的功能。每次点击翻链接时,Django会根据当前码和每展示的数据数量,自动计算出要展示的数据范围,并将对应的数据传递给模板,以确保只展示当前数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值