2012-09-27 14 views
8

में दो चरों की तुलना करें मेरे पास मूल्य "परीक्षण" और {{ element.author }} मूल्य के साथ फिर से "परीक्षण" के साथ दो चर {{ profile }} है। जिन्जा 2 में जब मैं उन्हें उपयोग करने की तुलना करने की कोशिश करता हूं, तो कुछ भी दिखाई नहीं देता है। मैं तुलना करना इस प्रकार है:जिन्जा 2 टेम्पलेट

{% if profile == element.author %} 
{{ profile }} and {{ element.author }} are same 
{% else %} 
{{ profile }} and {{ element.author }} are **not** same 
{% endif %} 

मैं उत्पादन test and test are not same क्या गलत, मैं कैसे तुलना कर सकते हैं मिल सकता है?

+0

का मान दर्ज करने का प्रयास करें: {{[profile, element.author]}} – defuz

+0

आकस्मिक रूप से पोस्ट किया गया। इस अभिव्यक्ति को चर के प्रतिनिधित्व लेना चाहिए। – defuz

उत्तर

2

profile और element.author समान प्रकार नहीं हैं, या अन्यथा समान नहीं हैं। हालांकि, स्ट्रिंग में परिवर्तित होने पर वे वही मान आउटपुट करने के लिए होते हैं। आपको उनकी तुलना सही ढंग से करने या उनके प्रकारों को बदलने की आवश्यकता है।

+1

मैं बस कुछ स्ट्रिंग तुलना करना चाहता था, यह कैसे करें? – user1629366

+0

शायद: 'str (प्रोफ़ाइल) == str (element.author)'? अपने डेटा और कोड के बारे में सभी प्रकार और अन्य चीजों को जानने के बिना, मैं नहीं कह सकता। – mjibson

1

आप जिन्जा 2 उपलब्ध कई built in tests में से किसी एक का उपयोग करके चर के प्रकारों की जांच कर सकते हैं। उदाहरण के लिए string() या number()। मुझे एक ही समस्या थी और मुझे एहसास हुआ कि प्रकार थे।

8

मुझे एक ही समस्या है, एक पूर्णांक मान वाले दो चर समान नहीं हैं जब वे समान मान होते हैं।

क्या यह काम किसी भी तरह से करने का कोई तरीका है। ने str() == str() या int() == int() का उपयोग करने की भी कोशिश की लेकिन हमेशा एक अपरिभाषित त्रुटि होती है।

अद्यतन

मिले समाधान: आप दस्तावेज़ पढ़ना ऐसे {{ var|string() }} या {{ var|int() }} https://stackoverflow.com/a/19993378/1232796

के रूप में फिल्टर का उपयोग इसे यहाँ http://jinja.pocoo.org/docs/dev/templates/#list-of-builtin-filters

आपके मामले में पाया जा सकता है कि आप चाहते थे

करने के लिए
{% if profile|string() == element.author|string() %} 
{{ profile }} and {{ element.author }} are same 
{% else %} 
{{ profile }} and {{ element.author }} are **not** same 
{% endif %} 
संबंधित मुद्दे