Có bộ lọc mẫu trong django sẽ cắt bất kỳ khoảng trắng đầu hoặc cuối nào từ văn bản đầu vào hay không.bộ lọc mẫu để cắt bất kỳ khoảng trắng đầu hoặc cuối nào
Cái gì như: {{ var.example|trim }}
Có bộ lọc mẫu trong django sẽ cắt bất kỳ khoảng trắng đầu hoặc cuối nào từ văn bản đầu vào hay không.bộ lọc mẫu để cắt bất kỳ khoảng trắng đầu hoặc cuối nào
Cái gì như: {{ var.example|trim }}
Bạn có thể tự mình làm
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
@stringfilter
def trim(value):
return value.strip()
Django templates phép bạn truy cập các phương pháp và tài sản bằng '' Cú pháp:
{{ var.example.strip }}
Bạn có thể mở rộng này bằng cách kết nối các bộ lọc khác khi bạn đang làm việc với HTML, ví dụ:
{{ var.example.strip|safe|removetags:"p img" }}
đây đầu tiên chúng ta loại bỏ bất kỳ <p>
và <img>
thẻ, sau đó nói với Django nó có thể an toàn hiển thị phần còn lại của nội dung mà chúng tôi đã loại bỏ bất kỳ khoảng trống nào.
Có phải tài liệu đó là một thủ thuật không chính thức? – Medorator
Nó không phải là chức năng Django, mà là của Python. Tài liệu được ghi ở đây: https://docs.python.org/2/library/stdtypes.html#str.strip. Tài liệu về biến mẫu của Django: https://docs.djangoproject.com/en/dev/ref/templates/language/#variables – maciek
một nhận xét - bộ lọc 'removetags' đang được xóa khỏi django 1.10, vì vậy hãy cẩn thận – Jerzyk
Bất kỳ ai truy cập vào đây đều nên xem giải pháp của Ibatteau đơn giản hơn rất nhiều - chỉ cần sử dụng .strip trong chính mẫu đó (không cần đăng ký bộ lọc mới). – bryn
Sử dụng '{{var.example.strip}}' thực sự đơn giản hơn, tuy nhiên giải pháp này ở đây cũng được sử dụng. Ví dụ, nó cho phép bạn thực hiện '{% filter trim%} {% someothertag%} {% endfilter%}', điều này không thể thực hiện được. – jlh