Your SlideShare is downloading. ×
0
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Admin
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Admin

641

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
641
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    1. Administration Rashi Dhing
    2. A blog web application • We need to have an interface to • post, delete and modify articles • moderate comments • manage authorized writers and viewers ➡ We need an administration interface
    3. Why having an administration interface• Inspecting data see what the database contains• Managing acquired data insert, modify and delete database records• Managing users define who can access your application✓ All of these should be accessible for non technical users
    4. How to build such an administrator interface?➡ We could build the administrator interface from scratch๏ Its painfully, boring and repetitive to build it✓ With Django “batteries are included”
    5. Django provides✓ An optional, pluggable and customizable admin interface ... ... and it looks really good!
    6. Activate the admin interface for your Django project
    7. Step 1 - Modify the project settings ... setting.py INSTALLED_APPS = ( django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.sites, django.contrib.messages, django.contrib.staticfiles, WebDirectory, # Uncomment the next line to enable the admin: django.contrib.admin, # Uncomment the next line to enable admin documentation: # django.contrib.admindocs, ) ...
    8. Step 2 - Re-synchronize the database$ python manage.py syncdb
    9. Step 3 - Modify the project URL Dispatcher urls.pyfrom django.conf.urls.defaults import patterns, include, urlurlpatterns = patterns(, (r^webdirectory/, include(WebDirectory.urls)))from django.contrib import adminadmin.autodiscover()urlpatterns += patterns(,(r^admin/, include(admin.site.urls)))
    10. The admin interface is ready!
    11. The admin interface is ready! URL of the admin site
    12. The admin interface is ready! URL of the admin site So far, you can login as the superuser created during the first database sync
    13. Activate the admin interface for the WebDirectory app
    14. Step 1 - Create the admin.py file in WebDirectory WebDirectory/ __init__.py models.py test.py views.py urls.py admin.py templates/ static/
    15. Step 2 - Modify admin.py WebDirectory/admin.py from WebDirectory.models import Entry from django.contrib import admin admin.site.register(Entry)
    16. Step 2 - Modify admin.py WebDirectory/admin.py from WebDirectory.models import Entry from django.contrib import admin admin.site.register(Entry) makes the Entry data model available on the admin interface
    17. WebDirectory data models
    18. From WebDirectory admin you can
    19. From WebDirectory admin you can get the list of records
    20. From WebDirectory admin you can add records get the list of records
    21. From WebDirectory admin you can add records get the list of records
    22. From WebDirectory admin you can add records get the list of records modify records
    23. From WebDirectory admin you can add records get the list of records modify recordsdelete records
    24. Creating a dedicated administrator for WebDirectory
    25. The superuser administrator has all powers• Create, modify and delete users• Insert, modify, delete records from every application
    26. How to be more restrictive?✓ We want to create an administrator for the WebDirectory application only • A dedicated user admin named John Doe - login: jdoe • With the administrative privileges to create, modify and delete records in WebDirectory only
    27. Create the John Doe admin user
    28. login and password
    29. login and passworduser’s information
    30. login and password user’s informationstaff = admin power
    31. login and password user’s informationstaff = admin power give all administrative permissions for WebDirectory
    32. What the administrator can do
    33. What the administrator can do After logging in as jdoe ...
    34. What the administrator can do After logging in as jdoe ... ... John Doe can administrate WebDirectory only
    35. Customize the admin interface
    36. How to customize the admin interface?✓ By editing the admin.py• The class ModelAdmin is the representation of the models in the admin interface• Changing the admin options 1. create a new model admin object class EntryAdmin(admin.ModelAdmin): ... 2. register this new admin object admin.site.register()
    37. Task 1 - Customizing the interface for editing a recordDefault
    38. Task 1 - Customizing the interface for editing a recordDefault Finally fields grouped in fieldsets
    39. Task 1.1 - Modify the field order when editing a recordDefault
    40. Task 1.1 - Modify the field order when editing a recordDefault After fields reordered
    41. Task 1.1 - Editing admin.py WebDirectory/admin.py from WebDirectory.models import Entry from django.contrib import admin Class EntryAdmin(admin.ModelAdmin): fields = [name, image, mimeType, webpage] admin.site.register(Entry,EntryAdmin)
    42. Task 1.2 - Splitting fields into field setsNow
    43. Task 1.2 - Splitting fields into field setsNow Finally fields grouped in fieldsets
    44. Task 1.2 - Editing admin.py WebDirectory/admin.py from WebDirectory.models import Entry from django.contrib import admin Class Class EntryAdmin(admin.ModelAdmin): fieldsets = [ (File info, {fields: [name,webpage]}), (Upload image, {fields: [image,mimeType]})] admin.site.register(Entry, MyAdmin)
    45. Task 2 - Customizing the interface for listing all recordsDefault
    46. Task 2 - Customizing the interface for listing all recordsDefault Finally Multiple attributes displayed
    47. Task 2 - Customizing the interface for listing all recordsDefault Finally search by name Multiple attributes displayed
    48. Task 2 - Customizing the interface for listing all recordsDefault Finally search by name Multiple attributes displayed filter by MIME type
    49. Task 2.1 - Changing the record list outputDefault
    50. Task 2.1 - Changing the record list outputDefault After Multiple attributes displayed
    51. Task 2.1 - Editing admin.py WebDirectory/admin.py from WebDirectory.models import Entry from django.contrib import admin Class Class EntryAdmin(admin.ModelAdmin): fieldsets = [ (File info, {fields: [name,webpage]}), (Upload image, {fields: [image,mimeType]})] list_display = (name, mimeType, webpage) admin.site.register(Entry, MyAdmin)
    52. Task 2.2 - Adding filter and search Now
    53. Task 2.2 - Adding filter and search Now Finally search by name filter by MIME type
    54. Adding filter and search WebDirectory/admin.py from WebDirectory.models import Entry from django.contrib import admin Class Class EntryAdmin(admin.ModelAdmin): fieldsets = [ (File info, {fields: [name,webpage]}), (Upload image, {fields: [image,mimeType]})] list_display = (name, mimeType, webpage) list_filter = [mimeType] search_fields = [name] admin.site.register(Entry, MyAdmin)
    55. Advanced Customization
    56. More customization• We should be able to change the entire page layout✓ Redefine HTML and CSS of the admin pages➡ Redefine (extends) the predefined admin templates
    57. Step 1 - Create an admin directory in the project tsansweb/ __init__.py manage.py settings.py urls.py WebDirectory/ admin/ templates/ admin/
    58. Step 2 - Copy the admin templates• Find your Django installation path $ python >> import django my django_path >> django.__file__ /Library/Python/2.7/site-packages/django/__init__.pyc • Copy the templates index.html and base_site.html from django_path/contrib/admin/templates/admin/ to project_path/tsansweb/admin/templates/
    59. For example, change the title of the admin portal admin/templates/admin/base_site.html {% extends "admin/base.html" %} {% load i18n %} title in the header {% block title %}{{ title }} | {% trans My Custom Admin Portal %}{% endblock %} {% block branding %} <h1 id="site-name">{% trans My Custom Admin Portal %}</h1> {% endblock %} {% block nav-global %}{% endblock %} title in the body

    ×