मैं अपनी .html फ़ाइल से अपने view.py में घोषित शब्दकोश मान तक नहीं पहुंच सकता।
मैं इसके बारे में पिछले कई धागों का घंटों से उपयोग करने की कोशिश कर रहा हूं और मैं इसे नहीं देख सकता। मुझे यकीन है कि मैं कुछ गलत कर रहा हूँ।
View.py
def test(request):
now = datetime.now()
day = now.strftime("%Y-%m-%d")
year = now.strftime("%Y")
month = now.strftime("%m")
context = {
"content": [day,year,month],
"object_list": queryset
}
return render(request, "test.html", context)
फ़िल्टर.py
from django.template.defaulttags import register
@register.filter(name='get_item')
def get_item(dictionary, key):
return dictionary.get(key)
Test.html
{% load filtres_dictionary %}
{% with content.get_item.day as content.day %}
<p>{{ content|get_item:content.day }}</p>
{% endwith %}
मुझे वर्तमान में निम्न त्रुटि संदेश मिल रहा है, और जो मैं प्राप्त करना चाहता था वह है: 2019-06-13। मेरी वेबसाइट में मुद्रित।
['2019-06-13', '2019', '06'] में कुंजी [दिन] के लिए VariableDoesNotExist /test/ विफल लुकअप
1 उत्तर
उपरोक्त एक शब्दकोश मान नहीं है। यह एक सूची है। हालांकि आप इंडेक्स के माध्यम से सूची तत्वों तक पहुंच सकते हैं, जैसे:
<p>{{ content.0 }}</p>
लाइन {% with content.get_item.day as content.day %}
ज्यादा मायने नहीं रखती है: ऐसा लगता है कि आप यहां एक काल्पनिक उप-शब्दकोश के लिए एक गैर-मौजूदा मान निर्दिष्ट कर रहे हैं।
ऐसा कहा जा रहा है, मुझे विश्वास नहीं है कि सूची का उपयोग करना यहां एक अच्छा विचार है। आप वास्तव में एक शब्दकोश का बेहतर उपयोग करते हैं, जैसे:
context = {
'content': {
'day': day,
'month': month,
'year': year
},
'object_list': queryset
}
तो आप इसे टेम्पलेट में इस प्रकार एक्सेस कर सकते हैं:
<p>{{ content.day }}</p>
नोट: आपके द्वारा यहां उपयोग किया जाने वाला
get_item
टेम्प्लेट फ़िल्टर उपयोगी है यदि कुंजी स्वयं परिवर्तनशील है, इस स्थिति में आप इस प्रकार एक मनमानी कुंजी पास कर सकते हैं। यहाँ ऐसा नहीं है।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।