Tôi có một trang cài đặt tiểu sử nơi người dùng có thể thay đổi mật khẩu của họ và họ phải xác nhận nó nếu họ làm. Tôi không thể thực hiện điều này một trường bắt buộc, vì họ không phải thay đổi mật khẩu. Có một ví dụ để xác nhận mật khẩu xác nhận NẾU trường mật khẩu không rỗng? Và sau đó kiểm tra xem chúng có bình đẳng không? Tôi đã không thể tìm thấy bất kỳ ví dụ như vậy ...django xác nhận mật khẩu validator
11
A
Trả lời
24
Thêm dòng sau vào phương pháp của mẫu của bạn clean
:
def clean(self):
password1 = self.cleaned_data.get('password1')
password2 = self.cleaned_data.get('password2')
if password1 and password1 != password2:
raise forms.ValidationError("Passwords don't match")
return self.cleaned_data
EDIT
Thông điệp xác nhận lỗi trên sẽ đi vào non_field_errors
. Bạn không chỉ định thông báo lỗi nào đang hiển thị trên mỗi trường mật khẩu, nhưng dựa trên ngữ cảnh, tôi sẽ tưởng tượng đó là thông báo "Trường này là bắt buộc". Nếu đúng như vậy, hãy đảm bảo rằng các trường biểu mẫu của bạn có required=False
khi bạn xác định chúng hoặc nếu bạn đang làm việc với một lớp con biểu mẫu (và không thể chỉnh sửa trường biểu mẫu thực tế), bạn có thể ghi đè phương thức __init__
của biểu mẫu:
class MyForm(SomeOtherForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['password1'].required = False
self.fields['password2'].required = False
Các vấn đề liên quan
- 1. Validators, xác nhận mật khẩu
- 2. Django vấn đề mật khẩu
- 3. Xác minh mật khẩu Django trong Ruby on Rails cung cấp mật khẩu không khớp
- 4. Xác nhận mật khẩu bằng jQuery Xác thực
- 5. Xác thực biểu mẫu Javascript với mật khẩu xác nhận
- 6. Trình tạo mật khẩu Django
- 7. xác thực django mà không cần mật khẩu
- 8. SpringSecurity UserDetailsService nhận mật khẩu
- 9. xác thực mật khẩu cakephp
- 10. Xác thực mật khẩu FOSUserBundle
- 11. Xác nhận mật khẩu Parsley.js không hoạt động
- 12. Xác nhận mật khẩu trong khuôn khổ zend
- 13. Cách nhận mật khẩu từ xác thực cơ bản HTTP
- 14. Devise Not Validating Password/Xác nhận mật khẩu
- 15. Mã hóa mật khẩu trên POST Django
- 16. Thay đổi mật khẩu trong Django quản
- 17. Biểu mẫu Django + để đặt lại mật khẩu
- 18. PowerShell - Mật khẩu giải mã nhận-Credential?
- 19. Nhận tất cả mật khẩu loại nhập
- 20. Dịch vụ xác minh mật khẩu xác minh
- 21. Di chuyển mật khẩu từ Drupal 7 sang Django
- 22. Django, ModelForms, Người dùng và UserProfile - không băm mật khẩu
- 23. Python/Django - Tránh lưu mật khẩu trong mã nguồn
- 24. Chủ đề email đặt lại mật khẩu Django
- 25. mạnh mật khẩu regex
- 26. Làm thế nào để vô hiệu hoá xác nhận mật khẩu/xác nhận khi sử dụng has_secure_password trong Rails 3.2?
- 27. JSF 2.0: Xác nhận tính bình đẳng của 2 trường InputSecret (xác nhận mật khẩu) mà không cần viết mã?
- 28. Trình xác thực Laravel 4 cho trường mật khẩu trong tài khoản chỉnh sửa
- 29. Tại sao Active Directory xác thực mật khẩu cuối cùng?
- 30. Buộc xác thực mật khẩu trống trong Authlogic
Xem chỉnh sửa ở trên. –
Cảm ơn! tôi thực sự chỉ tìm thấy nó trước khi chỉnh sửa của bạn. Đối với bất kỳ ai khác tham khảo: https://docs.djangoproject.com/en/dev/ref/forms/validation/ – KVISH
Tôi nghĩ rằng bạn thực sự muốn 'nếu password1 và password1! = Password2:' nếu không nhập mật khẩu trong 'password1' và không có gì trong 'password2' sẽ không gây ra lỗi xác thực (giả sử bạn có' required = False' trên cả hai trường, vì có khả năng là biểu mẫu 'thay đổi mật khẩu') – Anentropic