2010-04-09 20 views
13

Trong Rails ERB, bạn có thể ngăn chặn dòng mới bằng cách thêm một dấu nối dấu để tags:Tôi có thể chặn các dòng mới sau mỗi thẻ mẫu với công cụ mẫu của Django không?

<ul> 
    <% for @item in @items -%> 
    <li><%= @item %></li> 
    <% end -%> 
</ul> 

trở thành:

<ul> 
    <li>apple</li> 
    <li>banana</li> 
    <li>cacao</li> 
</ul> 

Có cách nào để làm điều này trong Django? (Tiết lộ: Tôi đang tạo tệp csv với Django)

Chỉnh sửa: Làm rõ rằng các dòng mới mà tôi đang tìm kiếm là những dòng được để lại sau mẫu mẫu.

Trả lời

4

Gần nhất tôi đã tìm thấy những gì bạn đang tìm kiếm (Tôi đang tìm kiếm điều tương tự) là nói về một bản vá trong tương lai, tại đây: http://code.djangoproject.com/ticket/2594.

Thật không may, có vẻ như không có nhiều bạn có thể làm cho đến khi họ hợp nhất mà vá trong

+1

Họ sẽ không bao giờ hợp nhất bản vá đó. Báo cáo lỗi đã được đóng lại với một thông điệp cơ bản nói rằng động cơ mẫu của Django sẽ không thấy các tính năng mới và kế hoạch là có Jinja là động cơ được lựa chọn cho Django. – Louis

0

Khi bạn viết một mẫu, bạn có thể mở ul mã hóa cứng trong mẫu và các mục trought looping đang trả về giá trị đó với nó.

Theo tôi biết không có chức năng mặc định cho điều đó.

1

Ví dụ:

<ul> 
{% for obj in list %} 
    <li>{{ obj|linebreaksbr|striptags }}</li> 
{% endfor %} 
</ul> 

Hoặc này, mà sẽ loại khoảng trắng/tab/etc, giữa các thẻ HTML:

{{ spaceless }} 
<ul> 
{% for obj in list %} 
    <li>{{ obj }}</li> 
{% endfor %} 
</ul> 
{{ endspaceless }} 
+0

Ví dụ thứ hai của bạn sẽ xóa tất cả các dòng mới, không chỉ các ví dụ gây ra bởi việc có thẻ mẫu trên các dòng của riêng chúng. Ví dụ đầu tiên của bạn chỉ cần dải mới nếu obj có chúng .... không chính xác những gì OP đã yêu cầu. – CodeBlock

3
{% spaceless %} 
<ul> 
    <li>apple</li> 
    <li>banana</li> 
    <li>cacao</li> 
</ul> 
{% endspaceless %} 

Tôi không biết về bất kỳ cách nào để loại bỏ mẫu dòng thẻ. Tôi sẽ bỏ phiếu để mở báo cáo lỗi.

+4

Việc này loại bỏ tất cả các dòng mới, nó không ngăn chặn dòng mới từ các dòng chỉ chứa các thẻ mẫu. – CodeBlock

1

. Đó là năm 2016 bây giờ, và tôi nghĩ rằng vấn đề này vẫn còn hiện diện. Trong hướng dẫn này https://www.youtube.com/watch?v=vQjmz9wCjLA vào khoảng 1:45 một mẫu không có mẫu cho thấy có một dòng mới ở cuối thẻ.

+2

Bây giờ là năm 2017 và vẫn không có giải pháp hợp lý cho việc này! – NirIzr

Các vấn đề liên quan