Guido van Rossum writes: > On Mon, Sep 23, 2013 at 8:17 AM, Zero Piraeus <z...@etiol.net> wrote: >> On Mon, Sep 23, 2013 at 09:45:46AM -0400, Chris Lambacher wrote:
>>> [...] An example of how this will be used in practice is:> >>> {% if object.state == object.state.completed %} >>> some html >>> {% endif %} [Zero Piraeus suggests instead:] >> {% if object.state == State.completed %} >> some html >> {% endif %} >> >> That's quite intelligible, and doesn't require anyone to know that >> an Enum member's siblings can, in your proposal, be accessed directly >> via dot notation (an unintuitive state of affairs, to me at least). > Right. The OP is just concerned that (because these are Django > templates) he will have to pass in the 'State' class as a separate > template parameter for this to work. Given your earlier description of what makes sense for class attributes, an alternative solution might be to put State-valued class attributes (constants) on DjangoObject (the object's class), like DjangoObject.completed_state = State.completed, and so on. Then you write "{% if object.state == object.completed_state %}". IIUC, you wouldn't have a problem with that? It still doesn't feel quite right, but given the limitations of a template language, it might grow on me. Another alternative would be to have attributes like 'completed' be *boolean* properties computed from a State-valued attribute, and write just "{% if object.completed %}". This actually feels good to me given it's a templating language. But I don't know if either of those is reasonable in the context. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com