Import the model, override model admin, specify fields from . models import TransferEarnings from . forms import TransferEarningsForm from django . admin import ModelAdmin class TransferEarningsAdmin ( ModelAdmin ) : l i s t p e r p a g e = 15 s e a r c h f i e l d s = [ ’ u s e r l o g i n i d ’ ] l i s t d i s p l a y = ( ’ user ’ , ’ date ’ , ’ amount ’ , ’ t r a n s f e r t o ’ f i e l d s = ( ’ user ’ , ’ amount ’ , ’ date ’ , ’ t r a n s f e r t o ’ ) readonly = ( ’ user ’ , ’ amount ’ , ’ t r a n s f e r t o ’ , ’ date ’ ) form = TransferEarningsForm l i s t f i l t e r = [ ’ s t a t e ’ ]
Auto discover the admin modules # u r l s . py from django . conf . u r l s import patterns , url , i n c l u d e from django . c o n t r i b import admin admin . a u t o d i s c o v e r () u r l p a t t e r n s = p a t t e r n s ( ’ ’ , ( r ’ ˆadmin/ ’ , i n c l u d e ( admin . s i t e . u r l s )) , )
Custom class list filters c l a s s AdvancedDecadeBornListFilter ( django . c o n t r i b . admin . S i m p l e L i s t F i l t e r ) : def lookups ( s e l f , request , model admin ) : ””” Only show the lookups i f t h e r e a c t u a l l y i s anyone born i n the c o r r e s p o n d i n g decades . ””” qs = model admin . q u e r y s e t ( r e q u e s t ) i f qs . f i l t e r ( b i r t h d a y g t e=date (1980 , 1 , 1) , b i r t h d a y l t e=date (1989 , 12 , 3 1 ) ) . e x i s t s ( ) : y i e l d ( ’ 80 s ’ , ( ’ i n the e i g h t i e s ’ )) i f qs . f i l t e r ( b i r t h d a y g t e=date (1990 , 1 , 1) , b i r t h d a y l t e=date (1999 , 12 , 3 1 ) ) . e x i s t s ( ) : y i e l d ( ’ 90 s ’ , ( ’ i n the n i n e t i e s ’ )) def q u e r y s e t ( s e l f , request , q u e r y s e t ) :
Custom admin actions class ArticleAdmin ( admin . ModelAdmin ) : . . . a c t i o n s = [ ’ make published ’ ] def make published ( s e l f , request , queryset ) : queryset . update ( s t a t u s=’p ’ ) make published . s h o r t d e s c r i p t i o n = \ ”Mark s e l e c t e d s t o r i e s as p u b l i s h e d ”
Can be overriden per app/model in templates/admin/myapp/ app index . html change form . html c h a n g e l i s t . html d e l e t e c o n f i r m a t i o n . html o b j e c t h i s t o r y . html
templates/admin/myapp/changeform.html {% extends ”admin/ change form . html ” %} {% load i18n %} {% block object−t o o l s %} {% i f change %}{% i f not is popup %} <u l c l a s s=” object−t o o l s ”> <l i > <a h r e f=” h i s t o r y /” c l a s s=” h i s t o r y l i n k ”>{% t r a n s ” H i s t o r y ” %}</a> </l i > <l i > <a h r e f=” mylink /” c l a s s=” h i s t o r y l i n k ”>My Link</a> </l i > {% i f h a s a b s o l u t e u r l %} <l i > <a h r e f=” . . / . . / . . / r /{{ c o n t e n t t y p e i d }}/{{ o b j e c t i d }}/” c l a s s=” v i e w s i t e l i n k ”> {% t r a n s ”View on s i t e ” %}</a> </l i > {% e n d i f%} </ul> {% e n d i f %}{% e n d i f %} {% endblock %}
Custom media definitions class ArticleAdmin ( admin . ModelAdmin ) : class Media : css = { ” a l l ” : ( ” m y s t y l e s . css ” ,) } j s = ( ”my code . j s ” ,)
Row level permissions has add permission ( s e l f , request ) has change permission ( s e l f , request , obj=None ) h a s d e l e t e p e r m i s s i o n ( s e l f , request , obj=None )
Explicitly add the other admin modules # u r l s . py from django . conf . u r l s import patterns , url , i n c l u d e from myproject . admin import b a s i c s i t e , a d v a n c e d s i t e u r l p a t t e r n s = p a t t e r n s ( ’ ’ , ( r ’ ˆ basic −admin/ ’ , i n c l u d e ( b a s i c s i t e . u r l s )) , ( r ’ ˆadvanced−admin/ ’ , i n c l u d e ( a d v a n c e d s i t e . u r l s )) , )
Image Attributions http ://www. f l i c k r . com/ photos / h i n k e l s t o n e /2765597758 http ://www. f l i c k r . com/ photos /25521149@N03/2491915744 http ://www. f l i c k r . com/ photos /50764322@N04/8378057370 http ://www. f l i c k r . com/ photos /micahdowty /3866958782 http ://www. f l i c k r . com/ photos /81512202@N05/7468442446 http ://www. f l i c k r . com/ photos / marlenek /2051394370 http ://www. f l i c k r . com/ photos / t e j e d o r o d e l u z /3157690060/ http ://www. f l i c k r . com/ photos /23820645@N05/4287681570/ http ://www. f l i c k r . com/ photos / a i d a n j o n e s /3575000735/ http ://www. f l i c k r . com/ photos /go /253819/ http ://www. f l i c k r . com/ photos / o r i n r o b e r t j o h n /114430223/
About Me • Active Djangonaut and active in Python world • Part of a few popular open source django applications github.com/becomingGuru, stackoverflow.com/users/55562 • Co-Authored an ebook ”django-design-patterns” • Architect and develop full stack applications at Mckinsey • Earlier, Consulting and Development via Agiliq Solutions • Developed several custom proprietory django applications • twitter.com/becomingGuru