Django 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

我一直在筛选文件,但我觉得我没有得到一个明确的答案。可以运行类似python的东西吗

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在模板中添加
功能吗?@Addohm‌​y(“公司名称”)
,您将得到按字母顺序排序的一个。@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 %}