交钥匙用户注册

时间:2011-12-03 02:56:16

标签: django

Django的新手。我对管理面板感到惊讶。任何人都可以推荐一个我可以轻松上层的用户注册系统吗?包含视图文件的优先选项。

1 个答案:

答案 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)永远不要相信用户输入..