Có cách nào để làm isinstance/issubclass trong một mẫu Django? Tôi nhận ra tôi có thể viết templatetag của riêng mình, nhưng tôi ngạc nhiên rằng điều này không thể khiến tôi nghĩ rằng mình đang làm điều gì đó sai hoặc thiếu điều gì đó hiển nhiên.IsInstance trong mẫu Django?
Tôi muốn hiển thị hai phân đoạn đánh dấu khác nhau, tùy thuộc vào loại mục tôi đang hiển thị trong khi lặp lại trên bộ sưu tập của mình. Cảm ơn!
Hmmm, tôi đồng ý với những tình cảm nói chung, nhưng tôi không dám chắc tôi đi xa như vậy. Trường hợp sử dụng của tôi là, tôi có một tập hợp các mục, tất cả loại cơ sở chung, nhưng được trộn lẫn trong bộ sưu tập. Một foo sẽ hiển thị như thế này, một thanh sẽ hiển thị như thế, loại tương tự, nhưng hơi khác nhau. Chúng có các trường hơi khác nhau để hiển thị, do đó có các mảng hiển thị khác nhau, do đó, bạn có thể nói {% if item.field_that_bars_have%} hoặc tương tự, nhưng điều đó có vẻ khó chịu. – Ludo
Tôi đoán cách chính xác để xử lý việc này là tạo thẻ tùy chỉnh, render_result_item hoặc thứ gì đó có thể chọn đoạn hiển thị chính xác. Bằng cách đó, logic vẫn ở ngoài khuôn mẫu khung nhìn, mặc dù với chi phí đặt nó ở đâu đó mà người không lập trình/nhà thiết kế của chúng tôi sẽ không thể tìm thấy nó. Hoặc tôi có thể viết templatetag isinstance. Hoặc tôi có thể thêm một get_type hoặc một cái gì đó cho mô hình. Tôi hiện đang đánh bạc - cảm ơn phản hồi của bạn :). – Ludo