2012-04-02 29 views
6

Tôi đang sử dụng Django (và Python) lần đầu tiên và tôi đang tìm giải pháp đúng cho mẫu được bao gồm có thể hoặc không được cung cấp với giá trị.Thẻ 'có' có điều kiện ở Django

Ví dụ: mẫu này sẽ luôn có 'công ty' được xác định, nhưng có thể không phải lúc nào cũng được xác định 'người dùng'. Nếu 'sử dụng' không được xác định, sau đó người ta cần được xác định, như vậy:

<% with guy=(user if user != None else company.admin_user) %> 

Nhưng tôi đã không tìm thấy một cách tốt để thực hiện điều này. Trong một số trường hợp, người dùng sẽ được định nghĩa bởi includer của mẫu, trong các trường hợp khác, mẫu sẽ phải tìm người dùng 'mặc định'.

Edit: Các giải pháp, như mỗi câu trả lời Ignacio của, là thế này:

<% with guy=user|default:company.admin_user %> 

Trả lời

8

Bạn muốn bộ lọc default.

+0

Biến này, 'guy' từ ví dụ, được sử dụng ở nhiều vị trí trong mẫu. Có cách nào để sử dụng bộ lọc mặc định để xác định nó một lần không? Tôi muốn tránh phải khai báo mặc định cho mọi lần sử dụng biến. –

+0

Tôi không thể nhớ nếu bộ lọc hoạt động với 'with'. Bạn có thể cần thử cú pháp cũ. –

+0

Xin lỗi - Tôi rất mới với cả Python và Django - cú pháp cũ là gì? Tôi không tìm kiếm một cách hiệu quả hơn để hoàn thành nhiệm vụ này, chỉ là một cách hoạt động. :) –