【发布时间】:2018-11-29 17:10:14
【问题描述】:
我有大约 1000 条记录的数据,我想根据类别在同一模板文件中显示该数据的子集。我很难找到真正有效的解决方案。以下是我的目的,但我很确定有一种更有效的方法来做到这一点。
查看
def man_org_list(request):
manufacturers = Organization.objects.filter(member__member_flag=1, member__member_type='Manufacturer').order_by('id')
suppliers = Organization.objects.filter(member__member_flag=1, member__member_type='Supplier').order_by('id')
distributor = Organization.objects.filter(member__member_flag=1, member__member_type='distributor').order_by('id')
return render(request, 'profiles/man_dash.html', {'man': manufacturers, 'sup': suppliers, 'dist': distributor})
urls.py
urlpatterns = [
url(r'^$', views.org_list, name='org_list'),
url(r'^(?P<id>\d+)/$', views.org_details, name='org_details'),
url(r'^man_dash/', views.man_org_list, name='man_org_list')
]
我尝试根据类别更改的部分代码:
{% if request.get_full_path == '/profiles/man_dash/manufacturers/' %}
{% for org in man %}
<tr>
<th scope="row">{{ org.id }}</th>
<td>{{ org.org_name }}</td>
<td>{{ org.org_type }}</td>
{% for member in org.member.all %}
<td>{{ member.member_flag }}</td>
{% endfor %}
{% for c_score in org.c_score.all %}
<td>{{ c_score.completeness_score }}%</td>
{% endfor %}
<td><a href="{% url 'org_details' org.id %}" target="_blank">View</a></td>
</tr>
{% endfor %}
{% endif %}
正如您在 sn-p 中看到的,我使用 request.get_full_path 来匹配 url 路径以显示数据。但是,使用这种方法,我将不得不复制相同的代码块 3 次,只更改一页,这让我相信这不是执行此操作的理想方法。
有没有更好的方法可以通过视图或 url.py 做到这一点?
【问题讨论】:
标签: python django python-3.x django-templates django-views