لا يمكنك الوصول إلى كلمة المرور مباشرة. ال password
السمة مشفرة. (نرى إدارة كلمة المرور في Django.)
على سبيل المثال ، هنا عينة إخراج كلمة المرور.
>>> user = User.objects.create_user(username='asdf', email='asdf@example.com', password='xxxx')
>>> user.password
'sha1$166e7$4028738f0c0df0e7ec3cec06843c35d2b5a1aae8'
كما ترون، user.password
ليس xxxx
أنا أعطيت.
سأعدل create_user
لقبول معلمة كلمة المرور الاختيارية. وتمرير كلمة المرور على حد سواء create_user
, ، و client.login
على النحو التالي:
def setUp(self):
"""
Initializes the test client and logs it in.
"""
password = 'secret'
self.user = create_user(password=password)
self.logged_in = self.client.login(username=self.user.username, password=password)
تحديث
create_user
يجب استخدام User.objects.create_user
بدلاً من User.objects.create
. ويجب إرجاع كائن المستخدم الذي تم إنشاؤه:
def create_user(username=None, password=None, email=None, is_superuser=False):
if username is None:
username = "user%d" % Static.user_count
while User.objects.filter(username=username).count() != 0:
Static.user_count += 1
username = "user%d" % Static.user_count
if password is None:
password = "password"
if email is None:
email="user%d@test.com" % Static.user_count
Static.user_count += 1
user = User.objects.create_user(username=username, password=password)
# ^^^^^^^^^^^
user.is_superuser = is_superuser
user.save()
return user # <---