免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2702 | 回复: 0
打印 上一主题 下一主题

Django的newforms-admin分支合并了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-09 11:32 |只看该作者 |倒序浏览


django book 的第六章的admin这块,用的老版本的django,新版本有些变化,需要注意,以下是转载内容。
----------------------------------------------
关键字: django newforms-admin newforms admin newformsadminbranch
[/url]

昨天看到一篇
[url=http://imtx.cn/archives/290.html]文章

上写道Django的newforms-admin分支已经合并了。今天马上找了些文章想来看看学习下。
接下来说说现在看下来的一些基本感受吧。
1、首先Admin选项已经彻底和Model定义分离了,这是最基本也是最激动人心的变化。现在Model定义看上去一定干净整洁多了。
现在你新建一个project之后。urls.py文件已经变成了下面这个样子。
Python代码

  • from django.conf.urls.defaults import *   
  •   
  • # Uncomment this for admin:   
  • # from django.contrib import admin   
  •   
  • # Uncomment to load INSTALLED_APPS admin.py module for default AdminSite instance.   
  • # admin.autodiscover()   
  •   
  • urlpatterns = patterns('',   
  •     # Example:   
  •     # (r'^mysite/', include('mysite.foo.urls')),   
  •   
  •     # Uncomment this for admin docs:   
  •     # (r'^admin/doc/', include('django.contrib.admindocs.urls')),   
  •   
  •     # Uncomment this for admin:   
  •     # (r'^admin/(.*)', admin.site.root),   
  • )  from django.conf.urls.defaults import *
    # Uncomment this for admin:
    # from django.contrib import admin
    # Uncomment to load INSTALLED_APPS admin.py module for default AdminSite instance.
    # admin.autodiscover()
    urlpatterns = patterns('',
        # Example:
        # (r'^mysite/', include('mysite.foo.urls')),
        # Uncomment this for admin docs:
        # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
        # Uncomment this for admin:
        # (r'^admin/(.*)', admin.site.root),
    )
    要开启admin,必须去除注释from django.contrib import admin 和 (r'^admin/(.*)', admin.site.root) 这2行,至于admin/doc/其实是以前admin中就有的view部分的文档,现在作为contrib下的一个新发布的package。连同url也换了,
    还有 # admin.autodiscover() 这句的意思让admin开启在每个app的目录寻找一个叫admin.py的文件,如果注释掉这句,你会发现进入admin后原来的Users, Groups, Sites 这些Model都没了,去除注释之后就会出现了,因为auth这个app已经写了一个admin.py文件,所以admin.autodiscover() 可以搜索到。通过阅读这个admin.py的源代码从一定程度上也可以了解newforms-admin的一些用法。
    最基本的newforms-admin的用法:
    Python代码

  • # a sample models.py file   
  • from django.db import models   
  •   
  • class Author(models.Model):   
  •     first_name = models.CharField(max_length=30)   
  •     last_name = models.CharField(max_length=30)   
  •   
  •     def __unicode__(self):   
  •         return u'%s %s' % (self.first_name, self.last_name)   
  •   
  • class Book(models.Model):   
  •     title = models.CharField(max_length=100)   
  •     author = models.ForeignKey(Author)   
  •   
  • # a sample admin.py file (in same app)   
  • from django.contrib import admin   
  • from myproject.myapp.models import Author, Book   
  •   
  • class BookAdmin(admin.ModelAdmin):   
  •     list_display = ('title', 'author')   
  •     ordering = ('title',)   
  •   
  • admin.site.register(Author)   
  • admin.site.register(Book, BookAdmin)  # a sample models.py file
    from django.db import models
    class Author(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=30)
        def __unicode__(self):
            return u'%s %s' % (self.first_name, self.last_name)
    class Book(models.Model):
        title = models.CharField(max_length=100)
        author = models.ForeignKey(Author)
    # a sample admin.py file (in same app)
    from django.contrib import admin
    from myproject.myapp.models import Author, Book
    class BookAdmin(admin.ModelAdmin):
        list_display = ('title', 'author')
        ordering = ('title',)
    admin.site.register(Author)
    admin.site.register(Book, BookAdmin)

    简单来说就是把 class Admin 这个内部类的定义去除掉。利用admin.site.register来注册某个Model使其在admin中可用,而第二个参数可以用来设置一些选项,相当于以前class Admin这个内部类的定义。当然现在这些选项定义是通过继承ModelAdmin这个类来实现的,功能强大很多而且很多以前需要写在Filed中的选项(比如ForeignKey 的 edit_inline)也可以完全写在这里了。Model也就彻底变清净了。
    这些admin相关代码可以与Model写在同一个文件里也可以写在一个admin.py文件里(推荐)让admin.autodiscover() 自动找到。
    当然与newforms-admin相关的使用不是一言两语可以说得清的。毕竟这是从一个分支合并过来,改变是相当大的,而且现在官方文档也还没有正式的整理发布出来。
    2、所以我找了一些newforms-admin的一些资料,希望对需要学习newforms-admin的朋友有些帮助吧:
    Django 官方的 Tutorial 已经更新,很好的newforms-admin的入门材料:
    http://www.djangoproject.com/documentation/tutorial02/
    newforms-admin的wiki页:
    http://code.djangoproject.com/wiki/NewformsAdminBranch
    Lllama's handy how-do-I guide to newforms admin:
    http://code.djangoproject.com/wiki/NewformsHOWTO
    Django 1.0a 代码库中的docs的admin,以后应该就是正式的文档了:
    http://www.djangoproject.com/documentation/admin/
    一个视频教程:
    http://showmedo.com/videos/video?name=1750060&fromSeriesID=175
    这个有点老了,还是分支时写的一个东西,是中文:
    http://codeplayer.javaeye.com/blog/81645

    以后找到些什么新的资料也继续贴出来发布到这里吧,希望看到其他好的关于newforms-admin的资料的朋友也可以回复出来,大家一起学习。


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/54976/showart_1171618.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP