Django的新手。我对管理面板感到惊讶。任何人都可以推荐一个我可以轻松上层的用户注册系统吗?包含视图文件的优先选项。
答案 0 :(得分:1)
Django不是像wordpress那样只是插件的cms。然而,创建一个auth例程非常容易。只需阅读文档,了解这些文档以真正进入django业务非常重要:https://docs.djangoproject.com/en/1.3/topics/auth/
该页面上的示例将为您提供一个开端:
在某处创建登录和注册表单视图,然后创建指向此视图的URL(表单操作),并且您已经有(非常)基本设置
class SignUpForm(forms.Form):
email = forms.EmailField(required=True, label=_("E-Mail"))
password = forms.CharField(required=True, label=_("Password"), widget=forms.PasswordInput)
password2 = forms.CharField(required=True, label=_("Repeat password"), widget=forms.PasswordInput)
first_name = forms.CharField(required=True, label=_("First name"))
last_name = forms.CharField(required=True, label=_("Last name"))
phone_number = forms.CharField(required=True, label=_("Phone number"))
return signup_form
def sign_up(request):
"""
View for signing up a customer
"""
signup_form = customer_forms.SignUpForm(request.POST)
if signup_form.is_valid():
create_user_and_login(request)
return #somewhere
else:
return #error handling
def create_user_and_login(request):
## Retrieve User data from form
email = request.POST["email"]
password = request.POST["password"]
first_name = request.POST["first_name"]
last_name = request.POST["last_name"]
## Create a new user
new_user = User()
new_user.email = email
new_user.username = email
new_user.set_password(password)
new_user.first_name = first_name
new_user.last_name = last_name
new_user.save()
from django.contrib.auth import authenticate, login
def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
# Redirect to a success page.
else:
# Return a 'disabled account' error message
else:
# Return an 'invalid login' error message.
当然,表格仍然需要清理(参见django docs)永远不要相信用户输入..