The introduction to the admin in the docs [0] reads:

"One of the most powerful parts of Django is the automatic admin interface. 
> It reads metadata in your model to provide a powerful and production-ready 
> interface that content producers can immediately use to start adding 
> content to the site."
>

I've proposed [1] changing it to:

"One of the most powerful parts of Django is the automatic admin interface. 
> It reads metadata from your models to provide a quick and rudimentary 
> interface where trusted users can manage content on your site. 
>
>
> The admin has many hooks for customization but beware of trying to use 
> those hooks exclusively. If your needs outgrow what the admin provides, it 
> may be simpler to write your own views. The admin’s recommended use is as 
> an organization’s internal management tool. It’s not intended for building 
> your entire front end around."
>

However several reviewers have made comments like "I worry that the 
description of the Admin sells it short. The Admin is actually brilliant 
kit and works as advertised." and "Downgrading Django's admin from 
"powerful and production ready" to "quick and dirty [old wording]" is very 
harsh... And I fear this will not only lower user's expectations, but also 
dev's carefulness!"

I think part of the reason I raise this is that I'm getting weary of adding 
hook after hook for customizing every little thing. I worry we'll end up 
with an unmaintainable mess at some point. The latest proposal that has me 
thinking about this adds ModelAdmin.orderable_by and 
ModelAdmin.get_orderable_by() 
for the use case of disabling sorting of a column in the change list [2]. 
This topic also came up in the discussion of whether or not to add 
ModelAdmin.exclude and ModelAdmin.get_exclude() [3] (which hasn't been done 
yet). There's also an open question about whether or not to add a view 
permission [4]. I don't want to discuss each of these decisions on this 
thread but rather the broader question of whether putting a lot of effort 
in this area is a direction we should pursue. I know there have been some 
proposals of "admin2" but realistically I think the admin has too many 
customizations points such that superseding it with something new and 
innovative won't be feasible from a backwards compatibility standpoint.

[0] https://docs.djangoproject.com/en/dev/ref/contrib/admin/
[1] https://github.com/django/django/pull/6104
[2] https://github.com/django/django/pull/6107
[3] 
https://groups.google.com/d/topic/django-developers/WrnhmTyLHuY/discussion
[4] 
https://groups.google.com/d/topic/django-developers/X7YEGB9KJNc/discussion

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/72ecc667-1dba-432e-a749-dca214fa77b5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to