मैं वर्तमान उपयोगकर्ता को django टेम्पलेट टैग में कैसे प्राप्त कर सकता हूं? (अनुरोध वस्तु सुलभ नहीं है) या मैं अनुरोध ऑब्जेक्ट तक कैसे पहुंच सकता हूं?टेम्पलेट टैग में वर्तमान उपयोगकर्ता कैसे प्राप्त करें?
उत्तर
आप किसी टेम्पलेट टैग में वर्तमान उपयोगकर्ता उपयोग करना चाहते हैं, तो आप यह एक पैरामीटर के रूप टेम्पलेट्स में, गुजरना होगा तो जैसे:
{% my_template_tag user %}
तो सुनिश्चित करें कि आपके टेम्पलेट टैग इस की अनुमति है अतिरिक्त पैरामीटर इस विषय पर documentation देखें। आपको simple tags भी देखना चाहिए।
उपयोगकर्ता हर बार अनुरोध से जुड़ा हुआ है, अपने टेम्पलेट में आप कर सकते हैं निम्नलिखित:
{% if user.is_authenticated %}
{% endif %}
आप अपनी सामग्री का उपयोग करने के लिए "अनुरोध" निर्दिष्ट करने की जरूरत नहीं है
अद्यतन:
प्रति सचेत रहें: is_authenticated()
हमेशा लॉग इन उपयोगकर्ता (User
वस्तुओं) के लिए True
लौटने के लिए, लेकिनके लिए False
रिटर्न 10 (अतिथि उपयोगकर्ता)। यहां पढ़ें: https://docs.djangoproject.com/en/1.7/ref/contrib/auth/
यह विषय – tapioco123
'user.is_authenticated' हमेशा सत्य लौटाता है, इसलिए यह मूल रूप से बेकार है। –
नहीं! यह हमेशा उपयोगकर्ता (लॉग इन) के लिए सच हो जाता है, लेकिन बेनामी यूज़र के लिए झूठा रिटर्न देता है, इसलिए बेकार नहीं है! यहां सावधानी से पढ़ें: https://docs.djangoproject.com/en/1.7/ref/contrib/auth/ – daveoncode
यह सवाल पहले से ही answered here था:
{% ifuser.is_authenticated %}
Welcome
'{{ user.username }}'
{% else %}
<a href="{% url django.contrib.auth.login %}">Login</a>
{% endif %}
और सुनिश्चित करें कि आप अनुरोध टेम्पलेट संदर्भ प्रोसेसर अपने settings.py में इंस्टॉल किया हुआ है:
TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.core.context_processors.request',
...
)
नोट:
- उपयोग
request.user.get_username()
विचारों में &user.get_username
01 मेंटेम्पलेट्स। उपयोगकर्ता नाम विशेषता को संदर्भित करने पर पसंदीदा। अगर एक RequestContext प्रयोग किया जाता है Source - इस टेम्पलेट संदर्भ चर उपलब्ध है।
- django.contrib.auth.context_processors.auth डिफ़ॉल्ट & रूप से सक्षम है चर उपयोगकर्ता
- आप टेम्पलेट संदर्भ प्रोसेसर django.core.context_processors.request सक्षम करने की आवश्यकता नहीं देते हैं।
स्रोत: https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates
आप टेम्पलेट टैग बनाने से संदर्भ प्रोसेसर के रूप में यह बना सकते हैं और एक टेम्पलेट में हमेशा से यह कह सकते हैं। संदर्भ प्रोसेसर में आप हमेशा टेम्पलेट में फ़ंक्शन को कॉल किए बिना उपयोगकर्ता प्राप्त कर सकते हैं। – catherine
एक लाइनर टेम्पलेट टैग के लिए वास्तव में जटिल .. वास्तव में django इतनी अनजाने में है? – tapioco123
या इसे अपने टेम्पलेट {{user.username}} – catherine