Django Python脚本
我一直在筛选文件,但我觉得我没有得到一个明确的答案。可以运行类似python的东西吗Django Python脚本,python,django,django-templates,django-views,django-urls,Python,Django,Django Templates,Django Views,Django Urls,我一直在筛选文件,但我觉得我没有得到一个明确的答案。可以运行类似python的东西吗 if company_name.startswith(('A')): enter code here 从Django网站或应用程序中?我该怎么做呢 目前我使用的代码是 {% for TblCompanies in object_list %} <tr class="customer-table"> <td&g
if company_name.startswith(('A')):
enter code here
从Django网站或应用程序中?我该怎么做呢
目前我使用的代码是
{% for TblCompanies in object_list %}
<tr class="customer-table">
<td>{{ TblCompanies.company_id }}</td>
<td>{{ TblCompanies.company_name }}</td>
<td>{{ TblCompanies.contact_phone }}</td>
<td>{{ TblCompanies.billing_address }}</td>
<td>{{ TblCompanies.contact_e_mail }}</td>
</tr>
{% endfor %}
{%用于对象列表%中的TblCompanies}
{{TblCompanies.company_id}
{{TblCompanies.company_name}
{{TblCompanies.contact_phone}
{{TblCompanies.billing_address}}
{{TblCompanies.contact_e_mail}
{%endfor%}
但是我们的客户数据库太大了,要想找到一个客户就必须仔细查看列表,这是一个负担。我想改为使用URL按字母顺序排序,比如使用,你可以得到一个子字符串;然后将子字符串与'A'
进行比较:
{% for TblCompanies in object_list %}
{% if TblCompanies.company_name|slice:':1' == 'A' %}
<tr class="customer-table">
<td>{{ TblCompanies.company_id }}</td>
<td>{{ TblCompanies.company_name }}</td>
<td>{{ TblCompanies.contact_phone }}</td>
<td>{{ TblCompanies.billing_address }}</td>
<td>{{ TblCompanies.contact_e_mail }}</td>
</tr>
{% endif %}
{% endfor %}
索林特 将
对象列表
传递到模板之前,对其进行排序:
page = requests.REQUEST.get('page', 'A') # or Get from view parameter
# depending on url conf.
object_list = (object_list.filter(company_name__startswith=page)
.order_by('company_name'))
更新
注意:使用实际应用程序名称更改app
URL.py:
url(r'^/path/to/site/customers/(?P<page>[A-Z])$', 'app.views.list_customers')
customers/list.html
{# Link to A .. Z customer pages %}
{% for page in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' %}
<a href="/path/to/site/customers/{{ page }}">{{ page }}</a>
{# Use {% url ... %} once you learn the url tag if possible to reduce duplicated hard-coded url #}
{% endif %}
{% for TblCompanies in object_list %}
<tr class="customer-table">
<td>{{ TblCompanies.company_id }}</td>
<td>{{ TblCompanies.company_name }}</td>
<td>{{ TblCompanies.contact_phone }}</td>
<td>{{ TblCompanies.billing_address }}</td>
<td>{{ TblCompanies.contact_e_mail }}</td>
</tr>
{% endfor %}
{#链接到..Z客户页面%}
{%ABCDEFGHIJKLMNOPQRSTUVWXYZ“%”中的页面为%
{#在学习url标记后使用{%url…%}尽可能减少重复的硬编码url#}
{%endif%}
{对象\u列表%中的TBL公司为%0}
{{TblCompanies.company_id}
{{TblCompanies.company_name}
{{TblCompanies.contact_phone}
{{TblCompanies.billing_address}}
{{TblCompanies.contact_e_mail}
{%endfor%}
是否希望在模板中具有该功能?你为什么不把它放在视野里?你是对的,我应该把它放在视野里。我正在慢慢地将我的结构转换为面向视图的对象,但我在python编程中还不是那么流畅:)Django模板的特性非常有限。我想你没有在其中添加函数的选项。@Addohm,我不明白?您不想使用.order\b在模板中添加功能吗?@Addohmy(“公司名称”)
,您将得到按字母顺序排序的一个。@Addohm,获取参数如?page=A
(或在url中捕获页面:^page/(\P\d+/?$
)并在视图中筛选对象列表
,如答案所示。@Addohm,我更新了答案以显示示例。我要去睡觉了。如果您有更多问题,请添加评论。我将在9~10小时后回答。另外,如果您只想一次显示多个条目的列表,您可以查看Django内置的分页支持
from django.shortcuts import render
def list_compnaies(request, page):
object_list = (Customer.objects.filter(company_name__startswith=page)
.order_by('company_name'))
return render(request, 'customers/list.html', {
'object_list': object_list,
})
{# Link to A .. Z customer pages %}
{% for page in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' %}
<a href="/path/to/site/customers/{{ page }}">{{ page }}</a>
{# Use {% url ... %} once you learn the url tag if possible to reduce duplicated hard-coded url #}
{% endif %}
{% for TblCompanies in object_list %}
<tr class="customer-table">
<td>{{ TblCompanies.company_id }}</td>
<td>{{ TblCompanies.company_name }}</td>
<td>{{ TblCompanies.contact_phone }}</td>
<td>{{ TblCompanies.billing_address }}</td>
<td>{{ TblCompanies.contact_e_mail }}</td>
</tr>
{% endfor %}