is_authenticated আয় AnonymousUser এর জন্য সত্য

আমি is_authenticated ফিরে সত্য দিয়ে লগ ইন করছি যখন আমি লগ ইন করব না:

u = request.user
if u.is_authenticated:
    raise Exception('I am said to be authenticated, but I really am not.')

স্পষ্ট করার জন্য, Django ডিবাগ ভিউটি সঠিকভাবে আপনি কে AnonymousUser হিসাবে চিহ্নিত করে:

u   

এমনকি আরো অদ্ভুত, টেমপ্লেটের ভিতরে is_anonymous সূক্ষ্ম কাজ করে:

{% if not request.user.is_authenticated %}
    We are anonymous.
{% endif %}

কেন যে?

4

2 উত্তর

এটি একটি পদ্ধতি , একটি সম্পত্তি না। আপনাকে এটি কল করতে হবে:

if u.is_authenticated():

অবশ্যই, একটি টেমপ্লেটে, Django আপনার জন্য কলগুলির পদ্ধতি </একটি> স্বয়ংক্রিয়ভাবে।

26
যোগ

is_authenticated is a method, so you need some parentheses there. Otherwise, u.is_authenticated is the function object, which is a Trueish value.

টেমপ্লেট ভাষাতে, কোন আর্গুমেন্ট সহকারে ফাংশনগুলি ফাংশন হিসাবে মূল্যায়ন করা হয়, তাই আপনি সেখানে ভাল আছেন।

6
যোগ
ধন্যবাদ. এই নিখুঁত জ্ঞান করে তোলে। সেই বুদ্ধিমান বাগগুলির মধ্যে একটি যেটি এমন একটি ভাষা দিয়ে কাজ করার বছর পরে আপনার চোখকে প্রশিক্ষিত করতে পারে না যা শুধুমাত্র শর্তে বুলিয়ানদের অনুমোদন দেয়।
যোগ লেখক Dan Abramov, উৎস