2011-03-30 4 views
3

J'ai fait une simple application Django. J'ai un modèle "Visiteur". Mon but est d'avoir deux tables dans l'admin de Django. Un avec tous les visiteurs et un avec seulement ceux pour aujourd'hui.Django - Admin - Comment remplacer le template change_list pour Model Proxy?

J'ai tout obtenu en utilisant le code ci-dessous en suivant these instructions. Mais je ne suis pas sûr de savoir comment remplacer juste le change_list.html juste pour VisitorExpectedTodayProxy.

J'ai essayé de suivre le instructions here et j'ai créé Site/templates/admin/VisitorLog/VisitorExpectedTodayProxy/change_list.html et y ai apporté mes modifications, mais cela ne semble pas être le cas.

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" 

Répondre

2

Essayez vos noms de en minuscules dossier.

Notez que l'application admin minuscules le nom du modèle lors de la recherche pour le répertoire, alors assurez-vous nom du répertoire en minuscules si vous allez lancer votre application sur un Case- système de fichiers sensible.

De même, avez-vous parcouru la liste de contrôle pour vous assurer que votre répertoire de modèles fonctionne? TEMPLATE_DIRS doit contenir ce dossier de modèles et assurez-vous que le chargeur de modèles filesystem est devant le chargeur app_directories.

Enfin, vous pouvez pointer vers un modèle via un attribut ModelAdmin: http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_list_template

+0

Merci. C'était juste un problème en minuscules, 0h – Greg

3

En plus de vos chemins pour en minuscules ressembler à:

templates/admin/visitorlog/visitorexpectedtodayproxy/change_list.html 

Le contenu de votre change_list.html devrait étendre la default admin/change_list:

{% extends "admin/change_list.html" %} 

Vous pouvez personnaliser les différentes sections de cette page en regardant les différents blocs k modèles dans le code source django:

django/contrib/admin/templates/admin/change_list.html 
+0

Je viens de copier change_list.html dans le répertoire et je l'ai modifié ici. Y a-t-il un meilleur moyen? – Greg