69 lines
2.3 KiB
Python
69 lines
2.3 KiB
Python
from django.shortcuts import render, redirect
|
|
from .models import MyUser
|
|
from django.contrib.auth import login
|
|
from django.contrib.auth import logout
|
|
from django.contrib.auth import authenticate
|
|
from django.urls import reverse
|
|
from album.models import AlbumInfo
|
|
from article.models import ArticleTag
|
|
|
|
def register(request):
|
|
title = '注册博客'
|
|
pageTitle = '用户注册'
|
|
confirmPassword = True
|
|
button = '注册'
|
|
urlText = '用户登录'
|
|
urlName = 'userLogin'
|
|
if request.method == 'POST':
|
|
u = request.POST.get('username', '')
|
|
p = request.POST.get('password', '')
|
|
cp = request.POST.get('cp', '')
|
|
if MyUser.objects.filter(username=u):
|
|
tips = '用户已存在'
|
|
elif cp != p:
|
|
tips = '两次密码输入不一致'
|
|
else:
|
|
d = {
|
|
'username': u, 'password': p,
|
|
'is_superuser': 1, 'is_staff': 1
|
|
}
|
|
user = MyUser.objects.create_user(**d)
|
|
user.save()
|
|
tips = '注册成功,请登录'
|
|
logout(request)
|
|
return redirect(reverse('userLogin'))
|
|
return render(request, 'user.html', locals())
|
|
|
|
|
|
def userLogin(request):
|
|
title = '登录博客'
|
|
pageTitle = '用户登录'
|
|
button = '登录'
|
|
urlText = '用户注册'
|
|
urlName = 'register'
|
|
if request.method == 'POST':
|
|
u = request.POST.get('username', '')
|
|
p = request.POST.get('password', '')
|
|
if MyUser.objects.filter(username=u):
|
|
user = authenticate(username=u, password=p)
|
|
if user:
|
|
if user.is_active:
|
|
login(request, user)
|
|
kwargs = {'id': request.user.id, 'page': 1}
|
|
return redirect(reverse('article', kwargs=kwargs))
|
|
else:
|
|
tips = '账号密码错误,请重新输入'
|
|
else:
|
|
tips = '用户不存在,请注册'
|
|
else:
|
|
if request.user.username:
|
|
kwargs = {'id': request.user.id, 'page': 1}
|
|
return redirect(reverse('article', kwargs=kwargs))
|
|
return render(request, 'user.html', locals())
|
|
|
|
|
|
def about(request, id):
|
|
album = AlbumInfo.objects.filter(user_id=id)
|
|
tag = ArticleTag.objects.filter(user_id=id)
|
|
user = MyUser.objects.filter(id=id).first()
|
|
return render(request, 'about.html', locals()) |