[PYTHON] Machen Sie einen Filter mit einer Django-Vorlage

Vorwort

Ich mache eine Webanwendung mit Mongodb und Django in Python, aber ich bin auf eine Situation gestoßen, in der ich die ID anzeigen möchte, um das von Mongodb erhaltene Element zu identifizieren, das sich in der Vorlage wiederholt.

Weise

Ich habe darüber nachgedacht, "{{item._id}}" in die Vorlage zu schreiben, aber "item._id" ist "_id": {"$ oid": "54cac41fe4b0b3c7e59cff77"} ", also Es kann nicht so angezeigt werden, wie es ist.

Aus diesem Grund habe ich beschlossen, es durch Hinzufügen eines Filters ohne Vorlage anzuzeigen.

Verzeichnisaufbau

Machen Sie die Verzeichnisstruktur wie folgt. Erstellen Sie ein Verzeichnis mit dem Namen "Templatetags".

|-view.py
|-templatetags/
| |- __init__.py
| |- filter.py
|
|-template/
  |- template.html

Inhalt jeder Datei

Es scheint, dass "__init __. Py" durch Versprechen geschrieben werden muss, um dieses Verzeichnis (Templatetags) als Paket zu erkennen.

__init__.py


#OK am Himmel

Beschreiben Sie den Inhalt des Filters in filter.py. Hier wird der Wert von _id als Zeichenfolge ausgegeben.

filter.py


from django import template
register = template.Library()
 
@register.filter("mongo_id")
def mongo_id(value):
    return str(value['_id'])

template.html sieht so aus und es scheint, dass Sie es in Form von {{object | filter}} schreiben können. Sie müssen das Paket laden, das Sie verwenden möchten.

template.html


{% load filter %}
{% for item in items %}
  <input type="hidden" name="id" value="{{item|mongo_id}}"/>
{% endfor %}

Referenz

Recommended Posts

Machen Sie einen Filter mit einer Django-Vorlage
[Django 2.2] Fügen Sie neuen Posts mit einem Datum mithilfe eines Vorlagenfilters ein neues Abzeichen hinzu
Erstellen Sie eine Homepage mit Django
[Django] Erstellen Sie ein Pulldown-Menü
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
Machen Sie das Modell zu einer Zeichenfolge in der Django-HTML-Vorlage
Lassen Sie uns eine GUI mit Python erstellen.
Machen Sie einen Sound mit Jupyter Notebook
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Stellen Sie die Django-Anwendung mit Docker bereit
Machen wir einen Blockbruch mit wxPython
Django # 2 (Vorlage)
Django-Tipps - Erstellen Sie eine Ranking-Site mit Django-
Erstellen Sie ein Empfehlungssystem mit Python
Erstellen Sie eine Webanwendung mit Django
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Erstellen Sie mit PySide einen Modelliterator
Machen Sie eine schöne Grafik mit Plotly
Erstellen Sie mit Django einen Datei-Uploader
Erstellen Sie mit Python + Django + AWS eine Scraping-App und wechseln Sie Jobs
Einfacher RSS-Reader mit Django
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV
Machen Sie einen seltenen Gacha-Simulator mit Flask
Erstellen Sie eine Notebook-Pipeline mit Kedro + Papermill
Machen Sie mit matplotlib eine teilweise gezoomte Figur
Machen Sie ein Zeichnungsquiz mit kivy + PyTorch
Lassen Sie uns mit Python langsam sprechen
Erstellen eines Anmeldebildschirms in Django all auth
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
Machen Sie eine Logikschaltung mit Perceptron (Multilayer Perceptron)
Machen Sie Ja Nein Popup mit Kivy
Hinweise zum Aktivieren von PostgreSQL mit Django
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Erstellen Sie eine GIF-Animation mit Ordnerüberwachung
Erstellen Sie ein Webframework mit Python! (1)
Machen wir mit Pylearn 2 eine dreiäugige KI
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Schreiben Sie kurz if-else von Django Template
Ich habe eine WEB-Bewerbung bei Django gemacht
Django HTML Vorlage Teil 2
Internationalisierung mit Django
Django HTML-Vorlage
Tipps für Django-Vorlagen
CRUD mit Django
Django Filter Zusammenfassung
Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
Machen Sie Twitter Trend Bot mit Heroku + Python
Stellen Sie ein Überwachungsgerät mit einem Infrarotsensor her
So entwickeln Sie eine Cart-App mit Django
Starten Sie Django in einer virtuellen Umgebung mit Pipenv
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.