码迷,mamicode.com
首页 > 其他好文 > 详细

Django开发笔记六

时间:2017-10-17 15:24:03      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:方法   dump   self   ica   bst   html   rac   response   view   

1、登录功能完善

登录成功应该是重定向到首页,而不是转发,当前用户信息保存到session:

class LoginView(View):
    def get(self, request):
        return render(request, "login.html", {})

    def post(self, request):
        user_name = request.POST.get("username", "")
        pass_word = request.POST.get("password", "")
        user = authenticate(username=user_name, password=pass_word)

        if user is not None:
            dj_login(request, user)
            request.session[‘currentUser‘] = json.dumps(user, default=UserProfile.user2json)
            return HttpResponseRedirect("/")
        else:
            return render(request, "login.html", {‘msg‘: None})

 用户需要提供序列化方法:

class UserProfile(AbstractUser):
    nickname = models.CharField(max_length=50, verbose_name=u"昵称")
    birthday = models.DateField(max_length=50, null=True, blank=True, verbose_name=u"生日")
    gender = models.CharField(choices=(("male", u"男"), ("female", u"女"), ("secret", u"保密")), default=u"secret",
                              max_length=10)
    address = models.CharField(max_length=100, default=u"")
    mobile = models.CharField(max_length=11, null=True, blank=True)
    image = models.ImageField(upload_to="user/%y/%m", default=u"images/default/user_default.png",
                              max_length=100)
    add_time = models.DateTimeField(default=datetime.now)

    class Meta:
        verbose_name = u"用户"
        verbose_name_plural = verbose_name
        ordering = ["-id"]

    def __unicode__(self):
        return self.username

    def user2json(self):
        return {‘username‘: self.username, ‘nickname‘: self.nickname, ‘id‘: self.id, ‘image‘: self.image.url}

 

Django开发笔记六

标签:方法   dump   self   ica   bst   html   rac   response   view   

原文地址:http://www.cnblogs.com/lanqie/p/7680882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!