我列出了正确渲染的“nanas”(保姆)。现在,当有人点击其中一个时,我需要一个详细页面(仅针对点击的娜娜打开)。
我认为我的问题出现在我的所有Nanas的模板上,在href:
<a href="{% url 'app-administrador:nana' nana.id %}">
或者在网址中。
所有Nanas页面:
这是列出nanas View:
class NanasView(View):
def get(self, request):
nanas = Nana.objects.all()
context = {'nanas': nanas}
return render(request, 'app_administrador/nanas-registradas.html', context)
这是网址:
url(r'^referencias_de_nanas', views.NanasReferenciasView.as_view(), name='referencias_de_nanas'),
所有纳纳斯模板:
{% extends 'app_administrador/templates/base.html' %}
{% load staticfiles %}
{% block content %}
<!-- Member Entries -->
{% for nana in nanas %}
<!-- Single Member -->
<div class="member-entry">
<a href="extra-timeline.html" class="member-img">
<i class="entypo-forward"></i>
</a>
<div class="member-details">
<a href="{% url 'app-administrador:nana' nana.id %}">
<h4>
<p href="extra-timeline.html">{{ nana.nombre }} {{ nana.apellido_paterno }} {{ nana.apellido_materno }}</p>
{% if nana.foto %}
<img src="{{ nana.foto.url }}" class="img-rounded" width="160px"/>
{% endif %}
</h4>
<!-- Details with Icons -->
<div class="row info-list">
<div class="col-sm-4">
<i class="entypo-briefcase"></i>
<a href={{ nana.antecedentes_policiales }}>Antecedentes policiales</a>
</div>
<div class="col-sm-4">
<i class="entypo-twitter"></i>
<a href="#">@johnnie</a>
</div>
<div class="col-sm-4">
<i class="entypo-facebook"></i>
<a href="#">fb.me/johnnie</a>
</div>
<div class="clear"></div>
<div class="col-sm-4">
<i class="entypo-location"></i>
<a href="#">{{ nana.direccion }}</a>
</div>
<div class="col-sm-4">
<i class="entypo-mail"></i>
<a href="#">{{ nana.correo }}</a>
</div>
<div class="col-sm-4">
<i class="entypo-linkedin"></i>
<a href="#">johnkennedy</a>
</div>
</div>
</a>
</div>
</div>
{% endfor %}
{% endblock %}
娜娜的详细信息页面
我尝试显示点击的娜娜的详细信息页面:
class NanasValidarReferenciasView(View):
def get(self, request, nana_id):
# nana_id_is = nana_id
nana = Nana.objects.get(id=nana_id)
context = {'nana': nana}
return render(request, 'app_administrador/validar-referencias-nana.html', context)
这是网址:
url(r'^nana', views.NanasValidarReferenciasView.as_view(), name='nana'),
答案 0 :(得分:2)
你看到你的href看起来像这样:<a href="{% url 'app-administrador:nana' nana.id %}">
这完全没问题。这意味着url链接将两个字符串一起添加到一个地址中。我不确切知道你的网址是如何设置的,所以它看起来像这样:
root_url/2
其中root_url是你拥有的,2是nana.id
。要将其传递给url-view,它需要接受任何整数变量。像这样:
<强> urls.py 强>
url(r'^nana/(?P<nana_id>\d+)/$', views.nanas_specific, name='nana'),
P代表参数,如果你想查看它,它使用正则表达式逻辑。
然后在您的视图中,您可以准备好接受参数的函数:
<强> views.py 强>
def nanas_specific(request, nana_id):
其中nana_id包含urls解析的结果。
答案 1 :(得分:1)
我主要使用基于函数的视图,但我假设相同的逻辑适用于基于类的视图。 id不是URL的一部分,因此不会传递。将网址更改为
url(r'^nana/(?P<nana_id>\d+)/$', views.NanasValidarReferenciasView.as_view(), name='nana'),