2010-03-11 37 views
6

Tôi rất mới với django, khoảng một tuần vào nó.Có thể, trong một mẫu django, để kiểm tra xem một đối tượng có được chứa trong danh sách

Tôi đang tạo trang web nơi người dùng nhập nội dung, sau đó những người dùng khác có thể bỏ phiếu cho dù họ có thích nội dung hay không. Tôi biết nó không quá mới lạ, nhưng đó là một dự án tốt để học một loạt các công cụ.

Tôi có một bảng nhiều người để lưu trữ người thích hoặc không thích những gì. Trước khi tôi hiển thị trang, tôi kéo tất cả các lượt thích và không thích cho người dùng hiện tại, cùng với nội dung tôi sẽ hiển thị trên trang.

Khi tôi hiển thị trang, tôi sẽ xem qua danh sách nội dung tôi sẽ hiển thị và in từng tài liệu một. Tôi muốn hiển thị cho người dùng nội dung họ thích và họ không thích.

Vì vậy, trong mẫu django của tôi, tôi có một đối tượng được gọi là mục nhập. Tôi cũng có hai danh sách các đối tượng được gọi là thích và không thích. Có cách nào để xác định nếu mục nhập là một thành viên của một trong hai danh sách, bên trong mẫu django của tôi.

Tôi nghĩ rằng những gì tôi đang tìm kiếm là một bộ lọc nơi tôi có thể nói điều gì đó như

{% if entry|in:likes %} 

hoặc

{% if likes|contains:entry %} 

Tôi biết tôi có thể thêm một phương pháp để mô hình của tôi và kiểm tra đối với từng nhập riêng lẻ, nhưng điều đó có vẻ như nó sẽ là cơ sở dữ liệu chuyên sâu.

Có cách nào tốt hơn để suy nghĩ về vấn đề này không?

Trả lời

0

Đi here. Rất giống với những gì họ đang sử dụng trên thân cây. "Lưu tệp này dưới dạng smart_if.py trong thư mục templatetags của một trong các ứng dụng của bạn. Sau đó, {% load smart_if%} đơn giản sẽ thay thế mẫu Django {% if%} được xây dựng trong nhàm chán bằng mẫu thông minh mới."

+0

Chưa thử, nhưng có vẻ như những gì tôi cần. – AlexH

13

Nếu bạn đang sử dụng phiên bản django mới nhất, sau đó nó chỉ là

{% if entry in likes %} 

Refer django docs

+0

Tôi đang sử dụng 1.1.1. có tùy chọn nào không cần nâng cấp không? Khi nào thì dev sẽ được sản xuất? Có ai biết không? – AlexH

+1

Một số người biết. Đây là liên kết từ trang chủ: http://www.djangoproject.com/weblog/2010/mar/09/django-1_2-release-schedule/ –

-1

Nếu bạn không chạy cốp một trong các cách sau nên làm việc:

Filter:

Thay thế thẻ "if", phần lớn là cơ sở cho new functionality trong bản phát hành 1.2 sắp tới:

+0

Đó là khuyến cáo tu bao gồm các giải pháp ở đây, không chỉ các liên kết đến nó. – emi

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