Django - Admin - How to override change_list template for Model Proxy?
Solution 1
Try lowercasing your folder names.
Note, that the admin app will lowercase the model name when looking for the directory, so make sure you name the directory in all lowercase if you are going to run your app on a case-sensitive filesystem.
Also, have you gone through the checklist of making sure your templates directory is working at all? TEMPLATE_DIRS
needs to contain this templates folder of yours, and make sure the filesystem
template loader comes before the app_directories
loader.
Finally, you can point to a template via a ModelAdmin attribute: http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_list_template
Solution 2
On top of lowercasing your paths to look like:
templates/admin/visitorlog/visitorexpectedtodayproxy/change_list.html
The content of your change_list.html should extend the default admin/change_list:
{% extends "admin/change_list.html" %}
You can customise the different section of this page by looking at the various block templates in the django source code:
django/contrib/admin/templates/admin/change_list.html
Greg
I'm an avid programmer, web developer and electronics enthusiast. Here's my gift to Python hackers. And you can see everything I'm up to here.
Updated on June 12, 2022Comments
-
Greg almost 2 years
I made a simple Django app. I have one model "Visitor". My goal is to have two tables appear in the Django admin. One with all of the visitors and one with only those for today.
I got everything working with the code below by following these instructions. But I'm not sure how to override just the change_list.html for just VisitorExpectedTodayProxy.
I tried following the instructions here and I created
Site/templates/admin/VisitorLog/VisitorExpectedTodayProxy/change_list.html
and made my changes there, but it doesn't seem to be picking it up.Models.py
class Visitor(models.Model): visit_datetime = models.DateTimeField(null=True) visitor_name = models.CharField(max_length=500) #Make dummy models for different object views in admin interface class VisitorExpectedTodayProxy(Visitor): class Meta: proxy=True verbose_name = "Visitor" verbose_name_plural = "Today's Visitors and Regular Visitors"