-
Notifications
You must be signed in to change notification settings - Fork 4
/
account_views.py
54 lines (41 loc) · 1.82 KB
/
account_views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from django.views.generic import CreateView, UpdateView
from django.contrib.auth.views import LoginView
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib import messages
from django.contrib.auth import get_user_model
from base.models import Profile
from base.forms import UserCreationForm
class SignUpView(CreateView):
form_class = UserCreationForm
success_url = '/login/'
template_name = 'pages/login_signup.html'
def form_valid(self, form):
messages.success(self.request, '新規登録が完了しました。続けてログインしてください。')
return super().form_valid(form)
class Login(LoginView):
template_name = 'pages/login_signup.html'
def form_valid(self, form):
messages.success(self.request, 'ログインしました。')
return super().form_valid(form)
def form_invalid(self, form):
messages.error(self.request, 'エラーでログインできません。')
return super().form_invalid(form)
class AccountUpdateView(LoginRequiredMixin, UpdateView):
model = get_user_model()
template_name = 'pages/account.html'
fields = ('username', 'email',)
success_url = '/account/'
def get_object(self):
# URL Pathからではなく、現在のユーザーから直接pkを取得
self.kwargs['pk'] = self.request.user.pk
return super().get_object()
class ProfileUpdateView(LoginRequiredMixin, UpdateView):
model = Profile
template_name = 'pages/profile.html'
fields = ('name', 'zipcode', 'prefecture',
'city', 'address1', 'address2', 'tel')
success_url = '/profile/'
def get_object(self):
# URL Pathからではなく、現在のユーザーから直接pkを取得
self.kwargs['pk'] = self.request.user
return super().get_object()