Add updated front end, updated CaseStudy model and profiles app
This commit is contained in:
7
apps/profiles/forms.py
Normal file
7
apps/profiles/forms.py
Normal file
@ -0,0 +1,7 @@
|
||||
from django.forms import ModelForm
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
|
||||
class UpdateProfile(ModelForm):
|
||||
class Meta:
|
||||
model = get_user_model()
|
||||
@ -1,2 +1,6 @@
|
||||
{% extends "base_page.html" %}
|
||||
Profile page
|
||||
Profile page
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<input type="submit" value="Update" />
|
||||
</form>
|
||||
@ -3,5 +3,19 @@ from django.conf.urls import url
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.Profile.as_view(), name='profile'),
|
||||
]
|
||||
url(
|
||||
regex=r'^~redirect/$',
|
||||
view=views.UserRedirectView.as_view(),
|
||||
name='redirect'
|
||||
),
|
||||
url(
|
||||
regex=r'^$',
|
||||
view=views.UserDetailView.as_view(),
|
||||
name='detail'
|
||||
),
|
||||
url(
|
||||
regex=r'^~update/$',
|
||||
view=views.UserUpdateView.as_view(),
|
||||
name='update'
|
||||
),
|
||||
]
|
||||
@ -1,5 +1,46 @@
|
||||
from django.views.generic.base import TemplateView
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.views.generic import DetailView, ListView, RedirectView, UpdateView
|
||||
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
|
||||
class Profile(TemplateView):
|
||||
template_name = "profiles/profile.html"
|
||||
class UserDetailView(LoginRequiredMixin, DetailView):
|
||||
model = get_user_model()
|
||||
# These next two lines tell the view to index lookups by username
|
||||
slug_field = 'username'
|
||||
slug_url_kwarg = 'username'
|
||||
|
||||
def get_object(self):
|
||||
return get_user_model().objects.get(username=self.request.user.username)
|
||||
|
||||
|
||||
class UserRedirectView(LoginRequiredMixin, RedirectView):
|
||||
permanent = False
|
||||
|
||||
def get_redirect_url(self):
|
||||
return reverse('profile:detail')
|
||||
|
||||
|
||||
class UserUpdateView(LoginRequiredMixin, UpdateView):
|
||||
|
||||
fields = ['first_name', 'last_name']
|
||||
|
||||
# we already imported User in the view code above, remember?
|
||||
model = get_user_model()
|
||||
|
||||
# send the user back to their own page after a successful update
|
||||
def get_success_url(self):
|
||||
return reverse('profile:detail')
|
||||
|
||||
def get_object(self):
|
||||
# Only get the User record for the user making the request
|
||||
return get_user_model().objects.get(username=self.request.user.username)
|
||||
|
||||
|
||||
class UserListView(LoginRequiredMixin, ListView):
|
||||
model = get_user_model()
|
||||
# These next two lines tell the view to index lookups by username
|
||||
slug_field = 'username'
|
||||
slug_url_kwarg = 'username'
|
||||
|
||||
Reference in New Issue
Block a user