/ / Django टेम्पलेट टैग जो एक बूलियन में लेता है और html - django, django- टेम्प्लेट देता है

Django टेम्प्लेट टैग जो बूलियन में लेता है और html - django, django- टेम्प्लेट देता है

मेरे पास HTML का यह बिट है जो कई स्थानों पर उपयोग होने वाला है।

            {% if event.finished_payments %}
<span class="label label-success">Complete</span>
{% else %}
<span class="label label-important">Incomplete</span>
{% endif %}

मैं एक टेम्पलेट टैग लिखना चाहता हूं जो एक बूल में लेता है और रिटर्न करता है <span class="label label-success">Complete</span> या <span class="label label-important">Incomplete</span> इस पर निर्भर करता है कि तर्क क्या है True या False जो मुझे लगता है कि कुछ इस तरह है:

{% tf_label event.finished_payments%}

वैकल्पिक रूप से, इसे प्राप्त करने का एक और तरीका है include टेम्पलेट टैग और मापदंडों में पारित?

उत्तर:

जवाब के लिए 3 № 1

यह चाल (परीक्षण नहीं किया जाना चाहिए):

from django import template

register = template.Library()

@register.simple_tag
def tf_label(request, complete):
if complete:
element = "<span class="label label-success">Complete</span>"
else
element = "<span class="label label-important">Incomplete</span>"

return element

जवाब के लिए 2 № 2
{{ event.finished_payments|yesno:"<span class="label label-success">Complete</span>,<span class="label label-important">Incomplete</span>" }}

लेकिन यह लगता है, का उपयोग कर {% if %} टैग यहां सबसे अच्छा विचार है, यह अधिक पठनीय है। वैसे भी HTML को टेम्पलेट्स में रहना चाहिए, पायथन कोड में नहीं।