2016-08-03 40 views
2

ich einige Modelle haben, einer von ihnen geht es um Fitness-Studio-Sessions,ändern django Admin-Vorlage für einen Kalender

class Gym_Class(models.Model): 
    name = models.CharField(max_length=200) 
    icon = models.ImageField() 
    instructor = models.ForeignKey(Instructor, related_name="instructor") 
    program = models.ForeignKey(Program) 
    short_review = models.TextField() 
    long_review = models.TextField() 
    date = models.DateField(default=datetime.now) 
    def __unicode__(self): 
      return self.name 

ich mich gefragt, ob ich die Angebotsvorlage im Admin außer Kraft setzen kann (localhost: 8000/admin/gym_class /), um die Sitzungen in einem Kalenderformat zu zeigen, das auf dem Datumsfeld jedes Exemplars basiert, nur für dieses Modell, die anderen möchte ich sie in einem regulären Listenformat sehen. Die ganze Idee ist, dass, wenn jemand Informationen über die Instanzen von gym_class bearbeiten möchte, sie einen Kalender sehen, anstatt nach der Klasse in einer großen Liste zu suchen.

+0

Gym_Class> GymClass – allcaps

+0

[Aus der Dokumentation] (https://docs.djangoproject.com/en/1.9/ref/settings/#installed-apps) Wenn mehrere Anwendungen verschiedene Versionen der gleichen Ressource (Vorlage, statisch Datei, Verwaltungsbefehl, Übersetzung), hat die zuerst in INSTALLED_APPS aufgeführte Anwendung Vorrang. – allcaps

+1

Also überschreiben Sie einfach die Vorlage "django change_list.html", indem Sie sie in "projekt/app/templates/app/admin/gymclass/change_list.html" setzen – allcaps

Antwort

0

Die Admin-Vorlagendateien befinden sich im Verzeichnis contrib/admin/templates/admin.

Um Gym_Class zu überschreiben, erstellen Sie ein Admin-Verzeichnis im Vorlagenverzeichnis Ihres Projekts. Erstellen Sie im Admin-Verzeichnis Unterverzeichnisse mit dem Namen [Ihr App-Name]. In diesem Verzeichnis erstellen Sie einen Verzeichnisnamen Gym_Class.

Kopieren Sie als Nächstes contrib/admin/templates/admin/change_list.html in das Verzeichnis, das Sie gerade erstellt haben.

Jetzt beginnen Sie die Datei wie normale HTML, Setup-Kalender und andere Sachen, die Sie tun möchten.

docss

+0

danke, das hat es gelöst, irgendwelche Vorschläge auf dem Kalenderansatz? Ich mache mir Sorgen um die Liste von gym_class'es und Paginierung, weil ich an eine Kalenderansicht denke, dass Sie alle Elemente haben sollten, nicht nur eine Seite zu der Zeit. –

0

Sie können die Anzeige des django admin overriding the admin templates ändern.

Die Vorlage, die Sie gezielt überschreiben möchten, heißt change_list.html. Diese Datei kann mit dem Pfad in Djangos Paket Verzeichnis:

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

Sie können die django-Vorlage aus dem lokalen Python-Paket-Verzeichnis kopieren, oder download it from django's Github repository in ein Ihre Anwendung Vorlage Verzeichnisse, es Platzierung in

<template-path>/admin/gym_class/change_list.html

<template-path> ist überall dort, wo Sie Vorlagen setzen in Ihrem Projekt

Mit der Vorlage können Sie es anpassen, wie Sie es wünschen, ohne das Änderungslistenlayout für Ihre anderen Anwendungen zu ändern.