đăng ký django cho phép bạn viết custom backend để xử lý các yêu cầu kích hoạt tùy chỉnh.
Vì vậy, những gì bạn cần làm là tạo chương trình phụ trợ của riêng bạn, tự mình thực hiện các chính sách register
và activate
.
Dưới đây là một ví dụ về cách bạn có thể thực hiện các chức năng register
:
def register(self, request, **kwargs):
username, email, password = kwargs['username'], kwargs['email'], kwargs['password1']
if Site._meta.installed:
site = Site.objects.get_current()
else:
site = RequestSite(request)
new_user = RegistrationProfile.objects.create_inactive_user(username, email,
password, site,
send_email=False)
# send an email to the admins with user information
send_new_user_notification(new_user) # you would write this function
signals.user_registered.send(sender=self.__class__,
user=new_user,
request=request)
return new_user
Điểm mấu chốt là để đảm bảo send_email
được thiết lập để false; điều đó sẽ ngăn người dùng nhận được liên kết kích hoạt. Sau đó, bạn có thể quyết định xem email được gửi tới quản trị viên có liên kết kích hoạt hay bạn đang hài lòng với họ khi truy cập vào quản trị viên và chỉ cần chọn hộp "Đang hoạt động".
Nếu bạn sử dụng AuthenticationForm
từ django.contrib.auth
sau đó nó sẽ tự động từ chối người dùng có is_active
là False, nhưng nếu bạn không sử dụng mà sau đó hãy chắc chắn để chạy kiểm tra sau đối với bất kỳ yêu cầu nơi người dùng tích cực là cần thiết:
def restricted_view(request):
if request.user and request.user.is_active:
#continue with the code
Bạn cũng có thể viết trang trí của riêng mình (xem @login_required
để tìm con trỏ). Lưu ý rằng @login_required
không không kiểm tra is_active
.
Nguồn
2010-12-10 18:22:56