मेरे पास 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 को टेम्पलेट्स में रहना चाहिए, पायथन कोड में नहीं।