Django template object type

后端 未结 2 476
无人及你
无人及你 2021-02-07 12:40

Alright, here\'s my situation. I\'ve got an array of generic objects that I\'m iterating over in a django template. Those objects have a number of subclasses and I want to fig

相关标签:
2条回答
  • 2021-02-07 13:03

    This is an old question, but FWIW you can do this with a template filter.

    @register.filter
    def classname(obj):
        return obj.__class__.__name__
    

    Then in your template you can do:

    {% with beer|classname as modelclass %}
    {% if modelclass == "Domestic" %}US of A
    {% elif modelclass == "Import" %}Somewhere else
    {% endif %}
    {% endwith %}
    
    0 讨论(0)
  • 2021-02-07 13:27

    You'll have to do it via some sort of method. Why not just write a method like display_location() or something on the model itself and have it return the string which gets rendered there? Then you could just put {{ beer.display_location }} in your template.

    Or if you want to go really crazy, write a custom template tag that does what you want, but that's much more work.

    0 讨论(0)
提交回复
热议问题