3

ジャンゴのスターターであるため、対処するのに少し問題があります。

html コード:

<li><a href="{% url 'dyn_display' category='first'%}">first</a></li>
<li><a href="{% url 'dyn_display' category='second'%}">second</a></li>
<li><a href="{% url 'dyn_display' category='third'%}">third</a></li>

urlconf.py

url(r'(?P<category>[a-z]+)$', 'display', name='dyn_display')

view.py

def courses_display(request, category):
    return render_to_response('display/basic.html', {category: 'in'}, context_instance=RequestContext(request))

最後に、basic.html の一部なので、なぜそのカテゴリ変数が必要なのかを理解できます。

basic.html

<div class="accordion" id="accordion2">
    <div class="accordion-group">
        <div class="accordion-heading">
            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseFirst">
                <strong>First</strong>
            </a>
        </div>
        <div id="collapseFirst" class="accordion-body collapse {{ first }}">
             <div class="accordion-inner">
                 ...
             </div>
         </div>
     </div>
     <div class="accordion-group">
         <div class="accordion-heading">
             <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseSecond">
                 <strong>Second</strong>
             </a>
         </div>
         <div id="collapseSecond" class="accordion-body collapse {{ second }}">
             <div class="accordion-inner">
                 ...
             </div>
         </div>
     </div>
     <div class="accordion-group">
         <div class="accordion-heading">
             <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThird">
                 <strong>Third</strong>
             </a>
         </div>
         <div id="collapseThird" class="accordion-body collapse {{ third }}">
             <div class="accordion-inner">
                 ...
             </div>
         </div>
      </div>
  </div>

ページ全体がブートストラップと Jquery で行われるため、URL の最後の部分

一部/URL/最初

一部/URL/

一部/URL/サード

アコーディオン要素を使用すると、ページをリロードせずにそれぞれの内部ボディを折りたたんで開くことができるため、ちょっと醜いです。だから問題は、リバース()でURLを決定するのではなく、ビューで使用されるkwargを逆に渡す方法はありますか?

some/url/のような URL を取得し、最初の .html ページからビューに kwarg を渡す方法は?

4

1 に答える 1

8

これを使用できます:

これがあなたの URL だった場合:

url(r'(?P<category>[a-z]+)$', 'display', name='dyn_display')
reverse('dyn_display', kwargs={'category': 'first'})

リダイレクトするには、ビューで次のように使用できます。

from django.http import HttpResponseRedirect
return HttpResponseRedirect(reverse('dyn_display', kwargs={'category': 'first'}))

これがあなたの URL だった場合:

url(r'$', 'display', name='dyn_dysplay')
reverse('dyn_display')

リダイレクトするには、ビューで次のように使用できます。

from django.http import HttpResponseRedirect
return HttpResponseRedirect(reverse('dyn_display'))

オプションの値を受け取るビューを作成するには、次の 2 つの URL が必要です。

url(r'$', 'display', name='dyn_optional_display')    
url(r'(?P<category>[a-z]+)$', 'display', name='dyn_display')

そして、あなたの見解:

def courses_display(request, category=None):
    ctx = {}
    if category:
        ctx.update({category: 'in'})
    return render_to_response('display/basic.html', ctx,    context_instance=RequestContext(request))
于 2013-03-01T08:36:26.763 に答える