文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Django的newforms-admin分支合并了

Django的newforms-admin分支合并了

时间:2008-09-09  来源:luxiaokang

 

django book 的第六章的admin这块,用的老版本的django,新版本有些变化,需要注意,以下是转载内容。

----------------------------------------------

关键字: django newforms-admin newforms admin newformsadminbranch 

昨天看到一篇文章上写道Django的newforms-admin分支已经合并了。今天马上找了些文章想来看看学习下。

接下来说说现在看下来的一些基本感受吧。

1、首先Admin选项已经彻底和Model定义分离了,这是最基本也是最激动人心的变化。现在Model定义看上去一定干净整洁多了。

现在你新建一个project之后。urls.py文件已经变成了下面这个样子。

Python代码
  1. from django.conf.urls.defaults import *   
  2.   
  3. # Uncomment this for admin:   
  4. # from django.contrib import admin   
  5.   
  6. # Uncomment to load INSTALLED_APPS admin.py module for default AdminSite instance.   
  7. # admin.autodiscover()   
  8.   
  9. urlpatterns = patterns('',   
  10.     # Example:   
  11.     # (r'^mysite/', include('mysite.foo.urls')),   
  12.   
  13.     # Uncomment this for admin docs:   
  14.     # (r'^admin/doc/', include('django.contrib.admindocs.urls')),   
  15.   
  16.     # Uncomment this for admin:   
  17.     # (r'^admin/(.*)', admin.site.root),   
  18. )  
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代码
  1. # a sample models.py file   
  2. from django.db import models   
  3.   
  4. class Author(models.Model):   
  5.     first_name = models.CharField(max_length=30)   
  6.     last_name = models.CharField(max_length=30)   
  7.   
  8.     def __unicode__(self):   
  9.         return u'%s %s' % (self.first_name, self.last_name)   
  10.   
  11. class Book(models.Model):   
  12.     title = models.CharField(max_length=100)   
  13.     author = models.ForeignKey(Author)   
  14.   
  15. # a sample admin.py file (in same app)   
  16. from django.contrib import admin   
  17. from myproject.myapp.models import Author, Book   
  18.   
  19. class BookAdmin(admin.ModelAdmin):   
  20.     list_display = ('title', 'author')   
  21.     ordering = ('title',)   
  22.   
  23. admin.site.register(Author)   
  24. 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的资料的朋友也可以回复出来,大家一起学习。

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载