In our application, we have a Model that has a boolean field named "deleted". When the delete() method is called, we set the deleted field to 1 and then save the model. We would like to create an admin site where we can manage the deleted and non deleted instances separately.
We could accomplish our goal by defining a queryset function for the ModelAdmin that restricts the instances returned to deleted=0. However, AFAIK this would eliminate the ability to undelete instances via the admin. Another option is to allow all instances to be shown and include delete as a value in the list_filter list for the admin but that clutters up our UI and requires an extra click. It would be nice if we could specify that the default admin view for this model has a list_filter of deleted=0 but I don't think this is currently possible. I think a good solution would be to create two ModelAdmins. One to display active instances and one to display deleted instances. With this approach we could define a queryset function for each ModelAdmin and when an instance is deleted it would automatically move to the correct ModelAdmin. This is explicitly denied in django/contrib/admin/ sites.py. Simply removing this check does not solve our problem but overwrites the first ModelAdmin for the model with the second via the dictionary "_registered" in the AdminSite class. From my brief dive into the admin site, there doesn't appear to be a real need for a one to one relationship between ModelAdmins and Models. If you allowed ModelAdmins to specify their own name I think it would be possible to have more than one ModelAdmin for a Model. I am not a Django expert but I don't see a reason that this scenario should be excluded. Can anyone recommend a way to accomplish either of the approaches I outlined above or propose a new approach that does not violate the AdminSite rules? Also, if anyone knows why the ModelAdmin needs to have a one to one relationship with Model please let me know. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.