2009-09-29 24 views
6

Tôi vừa mới bắt đầu học/sử dụng django; Tôi đang cố gắng tìm ra cách để có hai hệ thống xác thực riêng biệt cho quản trị viên và người dùng. Thay vì tạo toàn bộ hệ thống xác thực mới, tôi muốn tận dụng chức năng tích hợp của django (tức là quản lý phiên, @login_required decorator, v.v.).Hệ thống xác thực người dùng/quản trị viên riêng tại Django

Cụ thể, tôi muốn có hai bảng đăng nhập riêng biệt - một cho quản trị viên, một cho người dùng. Bảng đăng nhập quản trị phải là bảng mặc định mà django tạo với các trường mặc định của nó (ví dụ: id, username, email, is_staff, etc.). Mặt khác, bảng người dùng chỉ muốn có chỉ 5 trường - id, email, password, first_name, last_name. Hơn nữa, tôi muốn sử dụng quản lý phiên làm việc tích hợp django cho cả bảng đăng nhập lẫn trang trí @login_required cho các chế độ xem tương ứng của chúng. Cuối cùng, tôi muốn có hai biểu mẫu đăng nhập riêng biệt và riêng biệt cho quản trị viên và người dùng.

Bất kỳ ai có bất kỳ đề xuất nào về cách tôi có thể đạt được mục tiêu hoặc biết bất kỳ bài viết/ví dụ nào có thể giúp tôi cùng?

+0

Các quyền không đủ cho hầu hết các tác vụ không? Quản trị viên chỉ là người dùng có quyền phù hợp. Và thậm chí còn có 'user.is_staff' /' user.is_superuser' ngoài kia nếu bạn không muốn các quyền được tinh chỉnh. – drdaeman

+0

Dường như câu hỏi của tôi không rõ ràng; Tôi đã chỉnh sửa câu hỏi của mình bằng cách thêm các chi tiết và chi tiết cụ thể hơn, hy vọng làm cho nó rõ ràng hơn. Cảm ơn sự thấu hiểu/giúp đỡ. – Dan

Trả lời

1

Nếu tôi hiểu câu hỏi của bạn một cách chính xác (và có lẽ tôi không), tôi nghĩ bạn đang hỏi cách tạo biểu mẫu đăng nhập riêng cho người dùng không phải quản trị viên, trong khi vẫn sử dụng cơ chế xác thực Django chuẩn, mô hình User, vv Điều này được hỗ trợ nguyên bản bởi Django thông qua quan điểm trong django.contrib.auth.views.

Bạn muốn bắt đầu với django.contrib.auth.views.login. Thêm một dòng vào URLconf bạn như vậy:

(r'^/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}) 

Các login nhìn chung chấp nhận template_name tham số, đó là con đường dẫn tới mẫu tùy chỉnh đăng nhập của bạn (có một chung bạn có thể sử dụng là tốt, được cung cấp bởi django.contrib.auth) .

Tài liệu đầy đủ trên login, logout, password_change và các chế độ xem chung khác có sẵn trong Django Authentication Docs.

0

Sửa đổi mọi thứ để người dùng có tiền tố danh mục trên tên người dùng của họ? Bạn chưa cung cấp cho chúng tôi nhiều thông tin về những gì bạn muốn làm, có thể nhu cầu của bạn có thể được đáp ứng bằng cách sử dụng khung trang web hoặc chỉ đơn giản là hai cài đặt django riêng biệt.

Nếu những gì bạn đang cố gắng làm cho trang đăng nhập của người dùng và trang đăng nhập quản trị riêng biệt, chỉ cần sử dụng khung được xây dựng trong chi tiết trong tài liệu để tạo trang đăng nhập "người dùng" và chỉ để một người quản trị . Nếu bạn lo lắng rằng người dùng bằng cách nào đó sẽ bắt đầu chỉnh sửa công cụ đăng nhập quản trị, đừng, họ sẽ không trừ khi bạn cho phép họ.

1

Bạn có khả năng có thể viết một hoặc nhiều chương trình phụ trợ xác thực tùy chỉnh. Đây là tài liệu here. Tôi đã viết một backend tùy chỉnh để xác thực đối với một máy chủ LDAP, ví dụ.

Các vấn đề liên quan