Was ist der effizienteste Weg, um einen JSON-serialisierbaren Teil des DateTimeField in ein Django-Queryset zu bekommen?Nur einen serialisierbaren JSON-Teil eines DateTimeField in ein Abfrage-Set ziehen?
Größeres Bild ist, dass ich Energiezähler Lesungen (IntegerField) + Datum für mehrere Benutzer speichern und möchte eine eingeloggte Benutzerdaten in einer Django-Graphos-Visualisierung anzeigen. Optimale Flexibilität, um Grafiken zwischen Tag-, Wochen- und Monatsansichten umzuschalten.
Ich habe die Grafik bekam für ein in Benutzer mit der user_kwh integer und der user_id mit der unten in meiner Ansicht angemeldet gut funktionieren:
def graph(request):
queryset = MeterReading.objects.filter(user=request.user)
data_source = (ModelDataSource(queryset, fields=["user_id", "user_kwh"]))
chart = gchart.LineChart(data_source)
context = {'chart': chart}
return render(request, 'dashboard/index.html', context)
Aber wenn ich User_id ändern (mein Name user_kwh_timestamp das Datetime-Feld) wirft den Typeerror: "datetime.datetime (2013, 12, 1, 21, 58, 2, Tzinfo =) ist nicht JSON serializable"
Stuff ich habe bisher versucht
- Ich habe versucht, die Werte in den queryset Serialisierung, bevor sie mit ihnen an die Vorlage vorbei:
data_source = serializers.serialize('json', MeterReading.objects.all(), fields=('user_kwh_timestamp',))
aber die gibt einen Attribut sagen ‚Unicode‘ Objekt kein Attribut ‚get_header‘ hat. - Ich habe versucht, die queryset enger mit .values_list definieren, aber das sagt „‚datetime.datetime‘Objekt kein Attribut‚user_kwh_timestamp‘hat“
- ich diese Django Dokumentation mehrere Objekte in einem queryset auf Aktualisierung gefunden haben aber es zeigt nur, wie alle mit 1 Zeichenfolge aktualisieren: https://docs.djangoproject.com/en/1.7/topics/db/queries/#updating-multiple-objects-at-once
von dem Python Datetime-Dokumentation scheint es, dass strftime() und% b oder% x könnte ein Teil der Lösung sein, aber an diesem Punkt I‘ m verwirrt auf wie/wo diese zu implementieren https://docs.python.org/2/library/datetime.html#datetime-objects
Ich bin uns Django 1.7.1 und Python 2.7.6 über ide.c9.io. Erste Codierung Projekt und erste Frage hier entschuldigen so jede Unwissenheit im Inhalt, Stil oder Ansatz :)
danke mauro! das heraufgezogene "str" -Objekt hat kein Attribut "user_kwh_timestamp" von graphos/sources/model.py in get_field_values (ich habe das "has not attribute" öfter gesehen). obwohl wenn ich eine andere –
[bearbeitet für mehr als 5 Minuten ..] so während wir eine Liste jetzt erstellt haben, habe ich versucht mit SimpleDataSource Graphos anstelle von ModelDataSource. Es werden keine Fehler angezeigt, die Visualisierung wird jedoch in google.visualization.arrayToDataTable ("[{\ user_id": 1, "id": 1, "user_kwh": 49520, "user_kwh_timestamp": \ "2013-12-01T21: 58: 02Z \"}, während die Struktur in die Richtung von google.visualization.arrayToDataTable ([["user_kwh_timestamp", "user_kwh"], [2013-12-01T21: 58] 02Z, 49520] usw. –