Skip to main content

কিভাবে Django তে চেঞ্জ পাসওয়ার্ড ভিউ Create করতে হয় ?

ইউসার প্রোফাইল থাকলে পাসওয়ার্ড চেঞ্জ এর অপশনের দরকার হয়।  Django তে বিল্ট ইন PasswordChangeForm ব্যবহার  করে খুব সহজে এই অপশন আনা যায়।  এজন্য  ফাঙ্কশন বেসড ভিউ ব্যবহার করা ভালো কারণ PasswordChangeForm, ModelForm কে ইনহেরিট করে না এবং ইউসার আর্গুমেন্ট কন্সট্রাক্টর হিসেবে নেয় .

আমরা views.py এভাবে লিখতে পারি


from django.contrib.auth import update_session_auth_hash
from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import PasswordChangeForm
from django.shortcuts import render, redirect

@login_required
def change_password(request):
    if request.method == 'POST':
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            user = form.save()
            update_session_auth_hash(request, user)
         
            return redirect('/') # you can redirect others url you like
    else:
        form = PasswordChangeForm(request.user)
    return render(request, 'accounts/form.html', {
        'form': form
    })

*save() এর পর update_session_auth_hash(request, user)  ব্যবহার না করলে  ব্যবহারকারীর auth সেশন বাতিল হবে এবং তাকে পুনরায় লগ ইন করতে হবে।
   
urls.py 

from django.conf.urls import url
from accounts import views

urlpatterns = [
    url(r'^change-password/$', views.change_password, name='change_password'),
]

form.html 

<form method="post">
  {% csrf_token %}
  {{ form }}
  <button type="submit">Save changes</button>
</form>

Comments

Popular posts from this blog

How to set auto save in Sublime text editor

1. Press Ctrl+Shift+P 2 Package install/install package 3.Search autosave 4. Click to install 5. Go to Preference -> Package setting -> Auto Save -> Settings User 6. Paste the code   // Auto save default setting { "auto_save_on_modified": true, "auto_save_delay_in_seconds": 1, "auto_save_all_file": true, "auto_save_current_file": "", "auto_save_backup": false, "auto_save_backup_suffix": "autosave" } 7. Save the file, close the file and finally done :) .

STL streamstring

এটি একটি স্ট্যান্ডার্ড টেম্প্লেট লাইব্রেরী । কি কাজে লাগে এটা ? হ্যাঁ , মাঝে মাঝে আমাদের প্রব্লেম সল্ভ এর জন্য একটা স্ট্রিংকে ভেঙ্গে আলাদা স্ট্রিং বানানোর প্রয়োজন পরে তখন এই পাপী টাকে কাজে লাগে। header : #include <sstream>     stringstream ss; //declare korlam   string s; //main string   string n; //new string   ss<<s;  //ss er moddhe rakhlam   while(ss>>n)  {//vanglam  cout<<n<<endl; } এভাবে লিখলে বুঝবা while(ss>>n){ //kisu nai loop ar moddhe} cout<<n<<endl; লাস্ট এর ওয়ার্ড টা প্রিন্ট হবে ।     আবার স্ট্রিং থেকে int এ নিতে গেলে ও এটা কাজে লাগাতে পার ।   ধর তোমার কাছে same to you 100 নামে একটা স্ট্রিং আছে । ১০০ কে int এ কনভার্ট করা লাগবে । তখন কি করবা ?? আগের প্রসেস এ ভেঙে নিয়ে তারপর    stringstream _in;    int Y;    _in<<n;    _in>>Y;  // অস্থির ভাব...

পাইথনে os মডিউল

কি কাজে লাগে :        os মডিউল ব্যবহার করে আমরা ডিরেক্টরি পরিবর্তন করতে পারি , ডিরেক্টরি তে রাখা ফাইলের নাম পরিবর্তন করতে পারি , কোন প্লাটফর্ম ব্যবহার করছি তা জানতে পারি।  শুধু মাত্র ২-৩ লাইন কোড লিখে হাজার হাজার ফোল্ডার বানাতে পারি।  এমনকি আমার প্রিয় গানটা ও প্লে করতে পারি। তাহলে দেখে নেই কিভাবে করবো। ওসি মডিউলে নিয়ে কাজ করতে গেলে আগে মডিউল  ইম্পোর্ট করে নিতে হবে এভাবে , import os আমি এখন কোন ডিরেক্টরি তে আছি আগে এইটা দেখি। os.getcwd() ডিরেক্টরি পরিবর্তন করতে হলে , os.chdir('path_name')  path_name = কোন পথ এ যেতে চান os.name দিয়ে কোন প্লাটফর্মে আছেন তার তথ্য পাবেন। ভ্যালু গুলা এভাবে দেখতে পাবেন   ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’. os.uname() দিলে সিস্টেম ডিপেন্ডেন্ট সকল ইনফরমেশন দেখাবে। ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’ এগুলা কি তা একটু গুগল করে গুগলের সাথে বন্ধুত্ব বাড়াতে পারেন 😋. os.mkdir("folder_name") এই কমান্ড দিয়ে একটি মাত্র ফোল্ডার বানাতে পারবেন।  ফোল্ডারটি তৈরি হবে যে ডিরেক্টরি তে আপনি...