/ / преминаване на kwargs за гледката в обратен ред; django 1.5 - python, django

преминете kwargs за изгледа на обратен ред; django 1.5 - питън, джанго

Като стартиращ джанго, имам малък проблем да се справя:

<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>

Тъй като цялата страница се прави с bootstrap и Jquery, последните части на URL

някои / URL /първи

някои / URL /втори

някои / URL /трета

са нещо грозно, тъй като акордеонният елементпозволява да се сгромоляса и да отворя съответните вътрешни тела, без да презареждам страницата. Така че въпросът е: има ли начин да се премине kwarg отзад, който ще се използва в изглед, а не за определяне на URL адреса обратно ()?

начина, по който получавам URL някои / URL / и продължавате да преминавате kwarg от първата .html страница към изгледа?

Отговори:

7 за отговор № 1

Можете да използвате това:

Ако това беше вашият 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))