জাজানোতে কীভাবে ব্যবহারকারীদের নিজস্ব পাসওয়ার্ড পরিবর্তন করতে দেওয়া যায়?


84

ব্যবহারকারীরা জ্যাঙ্গোতে তাদের নিজস্ব পাসওয়ার্ড পরিবর্তন করতে পারে এমন কোনও কোডে আমাকে কী নির্দেশ করতে পারে?


17
গুগল যদি সেগুলি সম্পর্কে চিন্তা না করে উত্তরগুলির সন্ধান করতে আমাদের তৈরি করে, তবে স্ট্যাকওভারফ্লো তাদের অনুসন্ধান করার পরিবর্তে উত্তরগুলি জিজ্ঞাসা করে।
সিকোড়া

4
'Plzsendmetehcodes' এর জন্য -1। বিটিডাব্লু, আপনার আপনার প্রশ্নের সঠিক উত্তর গ্রহণ করা উচিত।
বিড়াল প্লাস প্লাস

8
হ্যাঁ, আমি গুগলকে প্রচুর ব্যবহার করতাম এবং এখনও করি। তবে এসও সহজ এবং দ্রুত এবং আপনি আলোচনায় জড়িত থাকতে পারেন এবং বিকল্প উত্তর শুনতে পারেন। যতক্ষণ না স্বেত্লোজার অ্যাঞ্জেলভ এবং অন্যদের মতো লোকেরা রয়েছেন, যারা সাধারণ প্রশ্নের উত্তর দেওয়ার জন্য তাদের সময় (এবং পয়েন্ট উপার্জন) করতে ইচ্ছুক, ভাল, এটাই তাই।
ডক

7
জ্যাঙ্গোর এমন ব্যাপক এবং সহজেই অ্যাক্সেসযোগ্য ডকুমেন্টেশন রয়েছে যে, এসও উত্তরে সমস্ত ডকুমেন্টেশন অনুলিপি করার চলমান প্রচেষ্টা সম্ভবত কোনও মান যোগ করতে পারে না।
বেন জেমস 13

4
@ বেন জেমস: এতো ভালো কথা। আসলে সে কারণেই আমার জবাবগুলিতে ডকুমেন্টেশনগুলিকে পুনরায় লেখার পরিবর্তে আমি খালি নগ্ন তথ্য এবং দস্তাবেজের লিঙ্কটি দিই।
চিত্তেগীক

উত্তর:


161

জাজানো একটি ব্যবহারকারী প্রমাণীকরণ সিস্টেম নিয়ে আসে। এটি ব্যবহারকারীর অ্যাকাউন্ট, গোষ্ঠী, অনুমতি এবং কুকি ভিত্তিক ব্যবহারকারী সেশনগুলি পরিচালনা করে। এই দস্তাবেজটি কীভাবে কাজ করে তা ব্যাখ্যা করে।

জ্যাঙ্গো পাসওয়ার্ড কীভাবে পরিবর্তন করবেন

দেখুন পাসওয়ার্ড পরিবর্তনের ধারা

  1. আপনার প্রকল্পে নেভিগেশন যেখানে manage.pyফাইল রয়েছে

  2. $ python manage.py shell

  3. স্ক্রিপ্টগুলির নীচে টাইপ করুন:

django.contrib.auth.models থেকে ব্যবহারকারী আমদানি করে
u = User.objects.get (ব্যবহারকারীর নাম__েক্সট = 'জন')
u.set_password ('নতুন পাসওয়ার্ড')
u.save ()

আপনি সাধারণ manage.pyকমান্ডটি ব্যবহার করতে পারেন :

manage.py changepassword *username*

দু'বার নতুন পাসওয়ার্ড লিখুন।

থেকে পরিবর্তন পাসওয়ার্ডগুলি ডক্সে অধ্যায়।


আপনি যদি django.contrib.adminআপনার INSTALLED_APPS, আপনি এখানে যেতে পারেন: example.com/path-to-admin/password_change/যা আপনার পুরানো পাসওয়ার্ড নিশ্চিত করুন এবং দুইবার নতুন পাসওয়ার্ড দিতে একটি ফর্ম থাকবে।


15
আমি মনে করি না এটি ব্যবহারকারীদের নিজের পাসওয়ার্ড পরিবর্তন করতে পৃষ্ঠাগুলি তৈরি করতে সহায়তা করে — এটি করার জন্য কেবল একজন প্রশাসক।
মিকাহ ওয়াল্টার

25

আপনি কেবল django.contrib.auth.views.password_changeআপনার ইউআরএলএনএফ- এ দেখুন ব্যবহার করতে পারেন । এটি একটি ডিফল্ট ফর্ম এবং টেম্পলেট ব্যবহার করে; আপনার নিজের সরবরাহ alচ্ছিক।


4

এটি শেল প্রবেশের প্রয়োজন ছাড়াই পাসডাব্লু এবং পাসওয়ার্ড পুনরায় প্রবেশ করান

 python manage.py changepassword <username> 
  or
/manage.py changepassword <username>

শেল ব্যবহার করে

python manage.py shell
from django.contrib.auth.models import User
users=User.objects.filter(email='<user_email>') 
  #you can user username or etc to get users query set
  #you can also use get method to get users
user=users[0]
user.set_password('__enter passwd__')
user.save()
exit()

3

এই টিউটোরিয়ালটি ফাংশন ভিত্তিক দর্শনগুলির সাথে এটি কীভাবে দেখায় তা দেখায়:

নথি দেখ:

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

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)  # Important!
            messages.success(request, 'Your password was successfully updated!')
            return redirect('change_password')
        else:
            messages.error(request, 'Please correct the error below.')
    else:
        form = PasswordChangeForm(request.user)
    return render(request, 'accounts/change_password.html', {
        'form': form
    })

ইউআরএল ফাইল:

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

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

এবং অবশেষে, টেমপ্লেট:

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


1

একবার সিওরো সান্তিলির উত্তরে বর্ণিত url প্যাটার্নটি যুক্ত হয়ে গেলে, ব্যবহারকারীদের পাসওয়ার্ড পরিবর্তন করার অনুমতি দেওয়ার একটি দ্রুত উপায় হ'ল এডমিনের কার্যকারিতার জন্য তাদের "কর্মীদের অ্যাক্সেস" দেওয়া। আপনি যদি এগুলিকে কোনও গোষ্ঠীতে যুক্ত না করেন বা তাদের বিশেষ অনুমতি না দেন তবে তারা উদাহরণস্বরূপ / অ্যাডমিন পৃষ্ঠাতে গিয়ে তাদের পাসওয়ার্ড পরিবর্তন করতে পারে। কর্মীদের অ্যাক্সেস তাদের খালি হলেও পৃষ্ঠায় যেতে দেয়; উপরের ডান দিকের কোণায় তারা "পাসওয়ার্ড পরিবর্তন করুন" ক্লিক করতে এবং অ্যাডমিন ফানশনালিটি ব্যবহার করতে পারেন।


1

এই কমান্ডটি আমি ব্যবহার করেছি, যদি কেবল সেই নিক্ষেপ করতে আপনার সমস্যা হয় AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'

python manage.py shell -c "from django.contrib.auth import get_user_model; 
User = get_user_model(); 
u = User.objects.get(username='admin'); 
u.set_password('password123');
u.save()"

1

প্রতি ডকুমেন্টেশন , ব্যবহার করুন:

from django.contrib.auth.hashers import makepassword

এটি করার প্রধান কারণ হ'ল জাজানো ডাটাবেসে সঞ্চয় করতে হ্যাশ পাসওয়ার্ড ব্যবহার করে।

password=make_password(password,hasher='default')
obj=User.objects.filter(empid=emp_id).update(username=username,password=password)

আমি এই কৌশলটি কাস্টম ব্যবহারকারী মডেলের জন্য ব্যবহার করেছি যা AbstractUserমডেল থেকে প্রাপ্ত । আমি যদি আমি প্রযুক্তিগতভাবে শ্রেণি এবং সাবক্লাসটি ভুল বানান করেছিলাম তবে আমি কৌশলটি ভালভাবে কাজ করেছি sorry


0

@ সিড়োর জবাবের সাথে খুব মিল, তবে মূল প্রশ্নের সাথে আরও নির্দিষ্ট (সমস্ত প্রমাণীকরণের ভিউ যোগ না করে):

শুধু যোগ urlpatternsমধ্যে urls.py:

url('^change-password/$', auth_views.password_change, {'post_change_redirect': 'next_page'}, name='password_change'),

নোট যেটি post_change_redirectপাসওয়ার্ড পরিবর্তিত হওয়ার পরে পুনর্নির্দেশ করার url নির্দিষ্ট করে।

তারপরে, কেবল আপনার টেম্পলেটটিতে যুক্ত করুন:

<a href="{% url 'password_change' %}">Change Password</a>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.