Django常用配置admin界面等

来源:互联网 发布:削下颌骨的后遗症知乎 编辑:程序博客网 时间:2024/06/07 22:50

  1. 取消 settings.py 中 INSTALLED_APPS 中 admin 注释
    'django.contrib.admin',

  2. 使用south管理数据库

    python manage.py schemamigration polls --autopython manage.py migrate polls
  3. 设置 mysite/urls.py

    from django.contrib import adminadmin.autodiscover()urlpatterns = patterns('',    ...    url(r'^admin/', include(admin.site.urls)),
  4. 启动服务器
    python manage.py runserver 访问地址 http://127.0.0.1:8000/admin/

  5. 增加 poll

    1. 增加 polls/admin.py

          from django.contrib import admin    from polls.models import Poll    admin.site.register(Poll)
    2. 定制管理界面(更改顺序)

       a. 定义一个ModelAdmin类对象   b. 把该对象作为注册的第2个参数        class PollAdmin(admin.ModelAdmin):            fields = ['pub_date', 'question']        admin.site.register(Poll, PollAdmin)
    3. 定制管理界面(分组)

      class PollAdmin(admin.ModelAdmin):    fieldsets = [        (None,               {'fields': ['question']}),        ('Date information', {'fields': ['pub_date']}),    ]
    4. 定制管理界面(折叠)

      class PollAdmin(admin.ModelAdmin):        ...        ('日期信息', {'fields': ['pub_date'], 'classes': ['collapse']}),

    增加Choice

    1. 内联方式

      from django.contrib import adminfrom polls.models import Choice, Pollclass ChoiceInline(admin.StackedInline):    model = Choice    extra = 3class PollAdmin(admin.ModelAdmin):    fieldsets = [        (None,               {'fields': ['question']}),        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),    ]    inlines = [ChoiceInline]admin.site.register(Poll, PollAdmin)
    2. 表格方式

       class ChoiceInline(admin.TabularInline):

    定制列表的管理界面

    1. 普通显示多列

       class PollAdmin(admin.ModelAdmin):     # ...     list_display = ('question', 'pub_date', 'was_published_recently')
    2. 方法设置属性

       was_published_recently.admin_order_field = 'pub_date' was_published_recently.boolean = True was_published_recently.short_description = '是否最近发布'
    3. 增加一个过滤器

       list_filter = ['pub_date']
    4. 增加搜索栏

       search_fields = ['question']
    5. 日期分层过滤

       date_hierarchy = 'pub_date'
    6. 完整的 PollAdmin 类

       class PollAdmin(admin.ModelAdmin):     fieldsets = [         (None,               {'fields': ['question']}),         ('日期信息', {'fields': ['pub_date'], 'classes': ['collapse']}),     ]     inlines = [ChoiceInline]     list_display = ('question', 'pub_date', 'was_published_recently')     list_filter = ['pub_date']     search_fields = ['question']     date_hierarchy = 'pub_date'

    定制个人的项目模版

    1.建立模版路径并增加到 settings.py 中

    1.1 django 的源文件在哪里?

    python -c "import syssys.path = sys.path[1:]import djangoprint(django.__path__)"

    比如我的 virtualenvs 环境的django 的输出结果就是:

    ~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django

    1.2 建立一个项目模版目录并拷贝模版

    在项目目录建立一个模版路径 templates,现在路径结果:

        ~/djtest/mysite    |---mysite    |---polls    |    |---migrations    |---templates    |        |---admin

    ~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin

    cp base_site.html ~/djtest/mysite/templates/admin/

    1.3 更改 settings.py,增加模版的搜索路径

    TEMPLATE_DIRS = (    '/home/***/djtest/mysite/templates/')


原创粉丝点击