2017-03-06 5 views
1

Ich verfolge die Wagtail documentation on Snippets, um sicherzustellen, dass ich das funktioniert, bevor ich mein eigenes erstelle. Aber sind auf einen Stolperstein gestoßen. Ich habe das Modell für die Anzeigen in der Datei models.py hinzugefügt und erstelle jetzt die Datei demo_tags.py. Derzeit liest sie -InvalidTemplateLibrary-Ausnahme beim Arbeiten mit der Wagtail-Dokumentation auf Snippets

from django import template 
from demo.models import * 

register = template.Library() 

... #don't know if something is supposed to go in here 

# Advert snippets 
@register.inclusion_tag('demo/tags/adverts.html', takes_context=True) 
def adverts(context): 
    return { 
     'adverts': Advert.objects.all(), 
     'request': context['request'], 
    } 

Wenn ich die Entwicklung Server laufen die from demo.models import * Linie erzeugt einen InvalidTemplateLibrary Fehler.

Offensichtlich soll ich die ersetzen die 'Demo' und '*' mit etwas ändern, aber was?

Darüber hinaus, wenn es um die Vorlage, genannt adverts.html, geht, welches Verzeichnis sollte das gehen? die Vorlage, oder mit den anderen Blog-Vorlagen?

Danke.

+0

Was ist die vollständige Fehlermeldung, die Sie bekommen? – gasman

+0

Ungültige Vorlagenbibliothek angegeben. ImportError beim Laden von 'blog.templatterags.demo_tags' ausgelöst: Kein Modul mit dem Namen 'demo' –

Antwort

0

demo.models bezieht sich auf das Modul, in dem das Modell Advert auf der Wagtail-Demo-Website definiert ist. Wenn Sie diese irgendwo anders definiert haben - wie die home/models.py-Datei, die auf einem neuen Bachstelze Projekt erstellt wird - müssen Sie dies entsprechend ändern:

from home.models import * 

Sie sollten Kreta die adverts.html am Standort templates/demo/tags/adverts.html in Ihrer App Verzeichnis. Allgemeiner - Django sucht nach dem Pfad, den Sie angegeben haben ("demo/tags/adverts.html"), nach einer Vorlage, die sich auf alle gültigen Vorlagenpositionen in Ihrem Projekt bezieht - was normalerweise die "Vorlagen" -Verzeichnisse aller vorhandenen Apps bedeutet in deinem Projekt.

+0

Ich habe es in '' blog.models import Advert, BlogIndexPage, BlockPage' geändert, da dort die 'Anzeige' definiert ist und es nicht mehr gibt Fehlermeldung :) –

+0

Jetzt scheint ich alles zu bestellen. Ich habe das Modell und die Vorlage erstellt, die Ansicht funktioniert und die {blog_page} -Schablone um {% adverts%} erweitert. ABER ich kann das Snippet nicht sehen/bearbeiten, wenn ich den Entwicklungsserver starte und eine Blogseite bearbeite. Fehle ich etwas? –

+0

Ich verstehe nicht, was du meinst - aber es klingt wie das ist getrennt von dieser Frage. Bitte können Sie eine neue Frage öffnen und erklären, was Sie genauer zu tun versuchen? – gasman

Verwandte Themen