2017-09-10 2 views
0

Ich versuche eine WhatsApp-Schaltfläche zu erstellen, aber ich habe Probleme mit dem Schrägstrich am Ende der href. Whatsapp rendert falsch mit dem abschließenden Schrägstrich.Ist es möglich, Slicing auf Django-Funktion auf Vorlage anzuwenden?

Ich benutze Bachstelze und Puput. Ich möchte es nur auf Vorlage tun, weil Wagtail und Puput Addons auf divio sind. Wenn ich sie getrennt installiere, müsste ich meine Website neu erstellen, also kann ich models.py nicht ändern.

Ich verwende {% canonical_url entry %} für die href. Was ich gerne hätte, wäre etwas wie {% canonical_url|slice:":-1" entry %}

Sie bieten full_url Platzhalter, aber es fügt kein Datum zu verknüpfen. Es gibt foo.com/slug anstelle von foo.com/2017/09/01/slug so wird alles auch falsch gerendert.

Irgendwelche Vorschläge?

Danke!

+0

Für den ersten Teil der Frage, können Sie die Frage mit dem, wie eine gültige URL aussehen sollte und was Sie jetzt zeigen, aktualisieren? –

Antwort

2

Es sollte möglich sein, {% canonical_url entry as url %} zu verwenden, um die gewünschte URL als die Variable url abzurufen, anstatt sie direkt aus dem Tag auszugeben. Danach können Sie das Slicing für die Variable mit {{ url|slice:":-1" }} ausführen.

+0

Ich erhalte diesen Fehler: TemplateSyntaxError at/ 'canonical_url' erhielt zu viele Positionsargumente – nicmano

+0

Ich entdeckte, dass ich django 1.8 verwende. Ist das ein Problem? – nicmano

+0

Ja, das wird es sein. 'canonical_url' ist [implementiert in puput als' simple_tag'] (https://github.com/APSL/puput/commit/9d7d783362f234eb3aa6f918e2fa094553e9364f), und die Möglichkeit, 'as [variable]' auf einem simple_tag zu verwenden, wurde nur in eingeführt Django 1.9. – gasman

0

Es gibt genau so etwas: .

Das Beispiel in der Dokumentation ist dies:

{{ some_list|slice:":2" }} 

Aber als ein String auch eine Liste von Zeichen in Python ist, sollte es auch mit einer Reihe gut funktionieren.

Hoffe es hilft!

+0

Benutzt er das nicht schon? –

+0

@ MD.KhairulBasar Ich glaube nicht, dass er hier sein Beispiel getestet hat, indem er nach seinen Worten "Ich hätte gerne etwas wie" –

+0

Ich habe es versucht, aber es ist eine Funktion namens 'canonical_url'. Es ist keine Liste. Ich muss auch das Argument "entry" übergeben – nicmano

Verwandte Themen