我正在开发一个有几个模型的Django应用程序:父母,孩子,学校,CellPhones。每个父母" (这实际上是Django"用户"型号)可以有多个孩子,每个孩子可以有一个学校和一个CellPhone。
我已经构建了我的网站,以尽可能保持模块化。我的意思是导航模板在一个文件中,侧边栏模板(包含很多链接)在另一个文件中,所有这些都由layout.html文件放在一起。
如果父母访问该网站,则会将其重定向到domain.com/dashboard
。在导航栏中,父级可以选择从下拉菜单中选择一个孩子。之后,父/用户将被重定向到domain.com/dashboard/1
,其中" 1"是子数据库表的主键。
我的问题:
domain.com/schools/1
,domain.com/cellphones/1
的形式,其中" 1"永远是孩子们的主要关键。表。此外,这个" sidebar.html"模板独立存在,仅包含在layout.html模板中。目前,我正在链接到/dashboard/1
,因为我正在使用用户的ID迭代子数据库中的所有模型。我已设法获取所有模板文件(包括sidebar.html)中所有子项的列表,但我很难根据URL /用户的选择获得单个模型。
答案 0 :(得分:0)
如何在页面导航到后获取所选值
/dashboard/1
,以便我可以将下拉值更改为 目前入选的孩子?
以下是一种方法,但实际上您需要使用自定义模板标记来呈现下拉列表:
<select>
{% for st in studentlist %}
<option value="{{ st.pk }}"
{% if request.url.path|slice:":-1" == st.pk %}selected{% endif %}>{{ st }}</option>
{% endfor %}
</select>
我如何从根本上获取有关当前所选内容的信息 整个layout.html文件中的孩子?
您需要将此视图从视图传递到模板,作为上下文变量:
def get_child_dashboard(request, pk=None):
child = get_object_or_404(Child, pk=pk)
return render(request, 'dashboard.html', {'child': child})
现在,当你想引用父母选择的孩子时,模板中的任何地方都使用{{ child }}
,例如:
<p>Hello, you are viewing the dashboard for {{ child.first_name }}</p>