2
0

customadmin.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. """
  2. A second, custom AdminSite -- see tests.CustomAdminSiteTests.
  3. """
  4. from __future__ import unicode_literals
  5. from django.conf.urls import url
  6. from django.contrib import admin
  7. from django.http import HttpResponse
  8. from django.contrib.auth.models import User
  9. from django.contrib.auth.admin import UserAdmin
  10. from . import models, forms, admin as base_admin
  11. class Admin2(admin.AdminSite):
  12. app_index_template = 'custom_admin/app_index.html'
  13. login_form = forms.CustomAdminAuthenticationForm
  14. login_template = 'custom_admin/login.html'
  15. logout_template = 'custom_admin/logout.html'
  16. index_template = ['custom_admin/index.html'] # a list, to test fix for #18697
  17. password_change_template = 'custom_admin/password_change_form.html'
  18. password_change_done_template = 'custom_admin/password_change_done.html'
  19. # A custom index view.
  20. def index(self, request, extra_context=None):
  21. return super(Admin2, self).index(request, {'foo': '*bar*'})
  22. def get_urls(self):
  23. return [
  24. url(r'^my_view/$', self.admin_view(self.my_view)),
  25. ] + super(Admin2, self).get_urls()
  26. def my_view(self, request):
  27. return HttpResponse("Django is a magical pony!")
  28. class UserLimitedAdmin(UserAdmin):
  29. # used for testing password change on a user not in queryset
  30. def get_queryset(self, request):
  31. qs = super(UserLimitedAdmin, self).get_queryset(request)
  32. return qs.filter(is_superuser=False)
  33. class CustomPwdTemplateUserAdmin(UserAdmin):
  34. change_user_password_template = ['admin/auth/user/change_password.html'] # a list, to test fix for #18697
  35. site = Admin2(name="admin2")
  36. site.register(models.Article, base_admin.ArticleAdmin)
  37. site.register(models.Section, inlines=[base_admin.ArticleInline])
  38. site.register(models.Thing, base_admin.ThingAdmin)
  39. site.register(models.Fabric, base_admin.FabricAdmin)
  40. site.register(models.ChapterXtra1, base_admin.ChapterXtra1Admin)
  41. site.register(User, UserLimitedAdmin)
  42. site.register(models.UndeletableObject, base_admin.UndeletableObjectAdmin)
  43. site.register(models.Simple, base_admin.AttributeErrorRaisingAdmin)
  44. simple_site = Admin2(name='admin4')
  45. simple_site.register(User, CustomPwdTemplateUserAdmin)