Übergeben von Argumenten an Modell-Methoden in Django-templates
Ich versuche, alle Kunden aus einem bestimmten Geschäft, aber es ist eine Klasse Methode im Kunden-Modell, um einige Informationen basieren auf dem gleichen Business... Lassen Sie mich erklären dies mit code...
class Business(models.Model):
...
customers = models.ManyToManyField(Customer, blank=True, null=True)
class Customer(models.Model):
...
def get_something(self, obj_business)
...
Ok jetzt in meinen Blick bekomme ich alle Kunden aus einem bestimmten Unternehmen wie diese:
obj_customers = obj_business.customers.all()
Dann ich versuchen, zu drucken, diese in mein template:
{% for obj_customer in obj_customers %}
{{ obj_customer.get_something ....... }}
Aber ja, es ist nicht ein Weg, um Argumente... ich würde gerne wissen, ob es etwas gibt, was mir fehlt...
Frage ich mich, ob es eine andere Lösung, anstatt so erstellen Sie ein template-tag... denn es ist ein ManyToManyField, wenn Kunden Feld hatte nur ForeignKey, nicht übergeben zu müssen, ein argument für diese Methode...
InformationsquelleAutor ezdookie | 2015-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine einfache template-tag für jede Methode aufrufen mit der alle Argumente:
Und dann in Ihre Vorlage ein:
Aber natürlich der Aufbau einer spezialisierten template-tag ist mehr sicher 🙂
Vorlage:
InformationsquelleAutor catavaran
Können Sie nicht Argumente an Funktionen, die in Django-templates.
Stattdessen schreiben Sie Ihre eigene template-tag.
Hier sind einige Beispiele:
https://github.com/miohtama/LibertyMusicStore/blob/master/tatianastore/templatetags/content.py
InformationsquelleAutor Mikko Ohtamaa