سلام و خداقوت به دوستان و استاد عزیز.
من میخوام براکسی که فعال نیست و رو لینک ارسالی کلیک نکرده تو صفحه ورود به سایت براش یه متنی ارسال کنم که اونی که فعال نیست بره و فعال کنه خودشو (یعنی بره بزنه تو لینک ارسالی ایمیلش).
بعد تو context ارسالی به صفحه is active اون یوزرم رو چک کردم ولی خب جواب نداد ....اگر لطف کنید راهنماییم کنید خیلی ممنونم ازتون

def post(self, request):
login_form = Login_form(request.POST)
Is_active: bool = User.is_active
if login_form.is_valid():
user_name = login_form.cleaned_data.get('username')
user_email = login_form.cleaned_data.get('email')
user_password = login_form.cleaned_data.get('password')
user_of_email: User = User.objects.filter(email__iexact=user_email).first()
user_of_username: User = User.objects.filter(username__iexact=user_name).first()
if user_of_email is not None:
# if not user_of_email.is_active:
# return redirect(reverse('home_page'))
is_pass_correct = user_of_email.check_password(user_password)
if is_pass_correct:
login(request, user_of_email)
return redirect(reverse('home_page'))
else:
login_form.add_error('password', 'رمز عبور اشتباه است ')
elif user_of_email is None:
login_form.add_error('email', 'ایمیل وارد شده وجود ندارد ثبت نام کنید ')
context = {
'login_form': login_form,
'is_active': Is_active
}
return render(request, 'log_in/log_in.html', context)وقتی هنوز لاگین نکردی چجوری می خواد یوزر رو چک کنه تازه وقتی ورود زن باید اینجوری کنی
user: bool = User.objects.filter(id=request.user.id)
is_active = user.is_activeنه اینو میخوام زمانی به یوزر نشون بده که ثبت نام کرده و میره صفحه لاگ این تا ورود کنه و در این حین لینک فعالسازی هم رفته به حسابش.بعد صفحه ثبت نام و قبل لاگ این شدنش !
نمیدونم متوجه شدی یا نه ؟
بعئ آقای مینائی فر توی صفحه htmlاز چه شرطی استفاده کنم برا باز خوانیش؟اینی که نوشتم درسته ؟
این کدی که گفتید رو هم تست کردم جواب نداد !!
امکان داره منطق کاری که میکنم مشکل داشته باشه یا اصلا کاری که میخوام بکنم انجام میشه یا نه !
ردیف شد اصلا نیاز به is active نبود با use.is_authenticated درست شد . دم شما گرم
خوب من تو سایتم یک صفحه جدید درست کردم به نام پیام و وقتی یک نفر ثبت نام کرد به اون صفحه منتقل میشه که متنش رو نوشتم برای فعال سازی حساب روی لینک ارسالی برای ایمل کلیک کنید
سلام دوست من
ببینین سیستم احراز هویت به این صورت هستش که جنگو تا زمانی که کاربر لاگین نباشه نمیتونه بفهمه که چه کسی وارد سایت شده و برای همین اصلا نمیتونین بفهمین که کسی که الان سایت شما رو داره بازدید میکنه کی هستش که بخواین پیام دلخواه رو نشون بدین
اما راه حل:
میتونین کاربر رو زمانی که ثبت نام میکنه همون لحظه لاگین کنین و اجازه بدین وارد سایت بشه تا بفهمین که چه کسی الان داخل سایت داره فعالیت میکنه
اما در پنل کاربری هیچ چیزی رو به کاربر نمایش ندین
البته این کار اصلا صحیح نیست
به نظر من میتونین داخل local storage یا کوکی مرورگر یه مقدار ذخیره کنین برای نمایش پیام و تا زمانی که کاربر حسابش رو فعال نکرده اون پیغام براش نمایش داده بشه
متوجه شدم ممنونم از راهنماییتون مهندس جان
خواهش میکنم دوست من
موفق باشین :)