BruceLi
V2EX  ›  Django

Django admin 如何一步添加用户

  •  
  •   BruceLi · Sep 22, 2015 · 4824 views
    This topic created in 3884 days ago, the information mentioned may be changed or developed.

    用 Django admin 开发一个简单的数据录入网站,客户需要自己创建一些用户, Django admin 默认的 form 太复杂而且要两步才能完成,如何一步搞定?

    7 replies    2015-09-23 11:16:17 +08:00
    wenbinwu
        1
    wenbinwu  
       Sep 22, 2015
    你自己写一个注册页面?
    BruceLi
        2
    BruceLi  
    OP
       Sep 22, 2015
    @wenbinwu 如果不能重载默认的 form ,估计只能这样了。
    cnleoyang
        3
    cnleoyang  
       Sep 22, 2015 via iPad
    自己写吧,共享一个代码片段供参考
    https://gist.github.com/anonymous/875d35faf9c8eb3ffa84
    BruceLi
        4
    BruceLi  
    OP
       Sep 22, 2015
    @cnleoyang 谢谢,去学习一下。
    gevin
        5
    gevin  
       Sep 22, 2015
    我也提供一个用户注册的实现

    ```
    class RegisterView(View):
    template_name = 'accounts/simple_form.html'

    def get(self, request, form=None):
    if not form:
    form = forms.RegisterForm()

    data = {'title':'Register', 'form':form, 'btn_name':'Register'}

    return render(request, self.template_name, data)

    def post(self, request):
    form = forms.RegisterForm(request.POST)
    if form.is_valid():
    username = form.cleaned_data['username']
    email = form.cleaned_data['email']
    password = form.cleaned_data['password']

    user = User.objects.create_user(username, email, password)

    user.save()

    msg = 'Successfully Registered'
    messages.add_message(request, messages.SUCCESS, msg)
    url = reverse('accounts:login')
    return redirect(url)

    else:
    return self.get(request, form)
    ```
    gevin
        6
    gevin  
       Sep 22, 2015
    BruceLi
        7
    BruceLi  
    OP
       Sep 23, 2015
    @gevin 刚看到,谢谢。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   984 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:15 · PVG 04:15 · LAX 13:15 · JFK 16:15
    ♥ Do have faith in what you're doing.