मैं एक साधारण Django ऐप विकसित कर रहा हूं। क्या नीचे दिए गए कोड का टुकड़ा भी मान्य है? मेरा कोड:

{% if request.session.role is "Manager" %}
{% extends 'manager_base_nav.html' %}
{% elif request.session.role is "Agent" %}
{% extends 'agent_base_nav.html' %}
{% else %}
{% extends 'customer_base_nav.html' %}
{% endif %}
-1
Aditya Kumar 21 पद 2020, 19:48

3 जवाब

सबसे बढ़िया उत्तर

आपको शीर्ष पर विस्तार करना होगा और यदि आप अपने ऐप में या तो उपयोग करना चाहते हैं तो आप इसे view.py के अंदर एक चर को परिभाषित करके कर सकते हैं

if request.session.role is "Manager":
    ex_template = 'manager_base_nav.html'
elif request.session.role is "Agent":
    ex_template = 'agent_base_nav.html' %}
else:
    ex_template = 'customer_base_nav.html'

और अपनी html फाइल पर आपको यह करना है

{% extends ex_template %}
0
mohen 21 पद 2020, 20:04

नहीं यह मान्य नहीं है। जैसा कि टेम्पलेट इनहेरिटेंस पर दस्तावेज़ कहता है:

यदि आप किसी टेम्प्लेट में {% extends %} का उपयोग करते हैं, तो यह उस टेम्प्लेट में पहला टेम्प्लेट टैग होना चाहिए। टेम्पलेट वंशानुक्रम काम नहीं करेगा, अन्यथा।

इस प्रकार आपको अलग-अलग टेम्पलेट्स के साथ काम करना चाहिए जो प्रत्येक एक अलग बेस टेम्पलेट से प्राप्त होते हैं, और व्यू लॉजिक को यह तय करने दें कि किस टेम्पलेट का उपयोग करना है।

0
Willem Van Onsem 21 पद 2020, 19:53

{% extends %} टेम्प्लेट में पहला टैग होना चाहिए।

आप जो चाहते हैं वह करें views.py , कुछ इस तरह:

if request.user.role == manager:
       render something
else:
       render something else
0
a_coder 21 पद 2020, 19:59