Django入门与实践-第24章:我的账户视图

好的,那么,这部分将是我们最后的一个视图。之后,我们将专心来改进现有功能。

accounts/views.py 查看完整文件

  1. from django.contrib.auth.decorators import login_required
  2. from django.contrib.auth.models import User
  3. from django.urls import reverse_lazy
  4. from django.utils.decorators import method_decorator
  5. from django.views.generic import UpdateView
  6. @method_decorator(login_required, name='dispatch')
  7. class UserUpdateView(UpdateView):
  8. model = User
  9. fields = ('first_name', 'last_name', 'email', )
  10. template_name = 'my_account.html'
  11. success_url = reverse_lazy('my_account')
  12. def get_object(self):
  13. return self.request.user

myproject/urls.py 查看完整文件

  1. from django.conf.urls import url
  2. from accounts import views as accounts_views
  3. urlpatterns = [
  4. # ...
  5. url(r'^settings/account/$', accounts_views.UserUpdateView.as_view(), name='my_account'),
  6. ]

templates/my_account.html

  1. {% extends 'base.html' %}
  2. {% block title %}My account{% endblock %}
  3. {% block breadcrumb %}
  4. <li class="breadcrumb-item active">My account</li>
  5. {% endblock %}
  6. {% block content %}
  7. <div class="row">
  8. <div class="col-lg-6 col-md-8 col-sm-10">
  9. <form method="post" novalidate>
  10. {% csrf_token %}
  11. {% include 'includes/form.html' %}
  12. <button type="submit" class="btn btn-success">Save changes</button>
  13. </form>
  14. </div>
  15. </div>
  16. {% endblock %}

Django入门与实践-第24章:我的账户 - 图1