Login

Type less with newforms admin

Author:
ncw
Posted:
July 26, 2008
Language:
Python
Version:
.96
Tags:
admin
Score:
-4 (after 6 ratings)

I recently converted a site with over 60 models to newforms admin. I like the seperation of the display from the defintion, but it does introduce quite a bit more typing which isn't in the spirit of Django DRY...

I particular I got bored of typing

admin.site.register(Model, ModelAdmin)

Over and over again so I wrote this little bit of code which does a bit of introspection. It assumes that

  1. You import all your models into your admin.py, ie from "myapp.models import *"
  2. The admin class for Model is called ModelAdmin

Put this snippet at the end of your admin.py

I hope that saves someone a bit of typing!

1
2
3
4
5
# Register Model with ModelAdmin
for name, model_admin in globals().copy().iteritems():
    if name.endswith("Admin"):
        model = globals()[name[:-5]]
        admin.site.register(model, model_admin)

More like this

Comments

aarond10ster (on July 27, 2008):
<p>Ummm... </p> <pre>class MyModel: ... class Admin: pass </pre> <p>Is this too hard to do? It does involve an extra 20 characters per model but gives you freedom to customise as needed later on and explicitly states whats going on.</p>

#

jho406 (on July 30, 2008):
<p>@aarond10ster</p> <p>Your referring to old-forms admin. Django 1.0 alpha uses newforms-admin and has completely decoupled admin from the models.</p>

#

Please login first before commenting.