【问题标题】:Django-Template: Tap list item and make a detail pageDjango-Template:点击列表项并制作详细信息页面
【发布时间】:2019-09-02 04:24:46
【问题描述】:

所以我有一堆列表项,当我点击一个时,我想获取该对象的名称和其他信息。

现在我不知道如何解析数据,需要帮助:)

如您所见,我有一个详细信息页面,但我的意思是在列表视图中获取该特定索引处的数据,所以如果我点击索引一,我想要索引一的名称!

观看次数:

@login_required
def studyplanPage(request):
    obj = Studyplan.objects.filter(canview__user=request.user)
    username = request.user
    context = {
        'object': obj,
        'MyName': username
    }
    return render(request, 'allStudyplans.html', context)

@login_required
def detailStudyplanPage(request):
    return render(request, 'detailStudyplan.html')

HTML 列表:

 {% for x in object %}


                <div class="col-lg-6">
                  <div class="card card-project">
                    <div class="card-body">
                      <div class="dropdown card-options">
                        <button class="btn-options" type="button" id="project-dropdown-button-1"
                          data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                          <i class="material-icons">more_vert</i>
                        </button>
                        <div class="dropdown-menu dropdown-menu-right">
                          <a class="dropdown-item" href="#">Edit</a>
                          <a class="dropdown-item" href="#">Share</a>
                        </div>
                      </div>
                      <div class="card-title">
                        <a href="detail-studyplan">
                          <span style="  
                                    height: 100%;
                                    width: 100%;
                                    left: 0;
                                    top: 0;

                                    z-index: 1;
                                    ">
                            <h5 data-filter-by="text">{{x.name}}</h5>
                            <h6 style="font-size: 12px">Studierar inför {{x.parent_assignment}}</h6>
                          </span>
                        </a>
                      </div>

                      <ul class = "hor-list">



                        {% for student in x.students.all %}
                        <li class = "list-item">
                          <div class="circle">
                            <span class="initials" , style="color: #ffffff"> {{ student|make_list|first|capfirst }}
                            </span>
                          </div>
                        </li>
                        {% endfor %}


                        <li class = "list-item">
                          <div class="circle2">
                            <span class="initials" , style="color: #ffffff"> {{ student|make_list|first|capfirst }}
                            </span>
                          </div>
                        </li>


                        <li>
                          <div style="">
                          <p class = "vmdlm">Visa Medlemmar</p>
                          </div>
                        </li>
                      </ul>

                      <div class="card-meta d-flex justify-content-between">
                        <div class="card-meta d-flex justify-content-between">
                          <span class="text-small" data-filter-by="text">Uppgiften ska vara färdig
                            {{x.deadline}}</span>

                        </div>

                      </div>
                    </div>
                  </div>
                </div>



                {% endfor %}

Html 详情页:

   <h1>{{ Here i want the title of whatever index i tapped! }}</h1>

【问题讨论】:

    标签: html css django twitter-bootstrap parsing


    【解决方案1】:

    为此,您需要像这样获取特定对象:

    from django.shortcuts import get_object_or_404
    
    def detail_page(request,pk):
         object = get_object_or_404(StudyPlan,pk=pk)
         return render(request, 'detailStudyplan.html',{'object':object})
    

    在您的 url 中,将 pk 作为 url 参数传递,如下所示:

    path('<int:pk>/view/detail/',views.detail_page,name='detail_page')
    

    您可以从列表页面中传递这样的详细 url:

    {% for x in object %}
    
       <a href = {% url 'detail_page' x.pk %}>{{x.name}}</a>
    {% endfor %}
    

    在您的详细信息页面中,您可以像这样获取该 pk 的信息:

    {{object.name}}
    ......
    

    【讨论】:

    • get_object_404 未定义
    • from django.shortcuts import get_object_or_404 你必须导入它
    • @WilliamAbrahamsson 如果对您有用,请随时接受并投票赞成答案
    猜你喜欢
    • 2012-11-15
    • 1970-01-01
    • 2014-11-13
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2014-07-02
    • 1970-01-01
    相关资源
    最近更新 更多