Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django - Admin - How to override change_list template for Model Proxy?

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"
like image 846
Greg Avatar asked Oct 28 '25 08:10

Greg


1 Answers

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
like image 58
Thierry Lam Avatar answered Oct 31 '25 01:10

Thierry Lam