Wie bekomme ich Python, um nicht an L anhängen oder in django Vorlage zu ignorieren

Gibt es einen Weg, um Python zu bekommen, um ein "L" an Ints kurz zu werfen, jedes Mal, wenn sie aus der Datenbank kommen? (Anmerkung: Ich benutze Mysql)

ODER, gibt es eine Möglichkeit, die L in Django-Vorlagen zu ignorieren? (Ich bekomme immer ungültige Formatierungsfehler, aber ich würde lieber nicht Listenverständnis / Casting JEDER Zeit)

ZB habe ich einen dict mit dem objekt pk als den schlüssel und ich bekomme folgendes in firebug:

Ungültige Eigenschaft id alert ({183L: <Vote: colleen: 1 auf was am besten beschreibt deine Garderobe auf …

Modell: Frageobjekt, andere Attribute egal, weil das betreffende Attribut das pk ist

View: Ich habe nicht den Code geschrieben und ich kann es nicht zu gut folgen, also kann ich nicht den Abschnitt posten, wo die Variable erstellt wird, aber es ist ein Dict mit Frage pks als Schlüssel und Vote Objekte als Werte ( Code in Frage ist von http://code.google.com/p/django-voting/wiki/RedditStyleVoting )

Vorlage: {% votes_by_user Benutzer auf Fragen als vote_dict%}, um das Dict in Frage Alert ({{vote_dict}}) zu produzieren; Löst den Fehler aus

Während in diesem speziellen Fall ich nur versuchen, das Dict zu alarmieren, das ich zurückgekommen bin, war dies ein wiederkehrendes Problem für mich, wenn ich Dicts oder Arrays in js-Funktionen übergebe, wo der Funktionsaufruf wegen des L. fehlschlägt (nur um dir Motivation zu geben Hinter der Frage)

2 Solutions collect form web for “Wie bekomme ich Python, um nicht an L anhängen oder in django Vorlage zu ignorieren”

Hier ist nichts falsch mit Django. Allerdings wird es schwierig sein, Ihnen eine relevante Lösung zu bieten, da wir nicht wirklich wissen, was Sie versuchen zu erreichen.

Jedenfalls ruft der {{ vote_dict }} die dict's __str__ Methode auf, die das gemeinsame {key_repr:value_repr} -Muster ist.

Wenn du folgendes machst:

 {% for key, value in vote_dict.items %} {{ key }} : {{ value }} {% endfor %} 

Sie würden bekommen, was Sie erwarten, ohne die L 's.

Auf einer sidenote, alert({{vote_dict}}) wird fast immer ein JS-Fehler alert({{vote_dict}}) : Der Parameter des alert soll ein String sein.

In Bezug auf Django – JS Interoperabilität

Wenn das, was du zu erreichen versuchst, Django-Items nahtlos in JS-Funcitons übergeben zu können (was bei Listeninstanzen möglich sein könnte), kannst du einen Template-Filter definieren, der was du benötigst.

Für eine Liste (oder jede Art von iterable, die Sie als Liste darstellen möchten), könnten Sie folgendes verwenden:

 def js_list(iterable): return '[%s]' % ', '.join(str(item) for item in iterable) 

Klingt wie das Fleisch des Problems hier ist, dass Sie Kontrolle über, wie die Django Vorlage Sprache Formate Zahlen, bevor sie in eine HTTP-Antwort.

Ich würde empfehlen, django.contrib.humanize, die Vorlage Filter für diesen Zweck bietet.

Siehe diese Frage: Formatnummern in Django-Vorlagen .

BEARBEITEN:

Es ist klar, dass du hier über iterables redest. Eine Lösung, die die humanisierenden Filter verwendet, würde es verlangen, dass Sie mit einem {% für%} {% endfor%} durch das iterable schleifen. Wahrscheinlich besser, es in der Ansicht zu tun, wie in der ersten Antwort vorgeschlagen.

  • Einfügen und Abrufen von Bildern in MySQL durch Python
  • Klasse hat keine Tabelle oder tablename angegeben und erbt nicht von einer vorhandenen Tabelle-abgebildeten Klasse
  • Mysql-connector-python 2.0.1-1 konfile mit python-mysql.connector
  • MySQLdb: Operand sollte 1 Spalte (n) enthalten
  • Python, Convert 9 Tupel UTC Datum auf MySQL datetime Format
  • Python: MySQLdb Verbindungsprobleme
  • Django ORM, Gruppe für Tag
  • Gibt es ein MySQL-Äquivalent zu Pythons Set-Typ?
  • Umschalten von SQLite auf MySQL mit Flasche SQLAlchemy
  • Wie kann ich eine sqlite Tabelle aus dieser xml / txt Datei mit python bauen?
  • MySQLdb mit mehreren Transaktionen pro Verbindung
  • Python ist die beste Programmiersprache der Welt.