Sehe ich es richtig, dass zwischen dieser Abfrage
content = Mainpages.objects.values().get(url=url)
und dieser Abfrage
content = Mainpages.objects.get(url=url)
der Unterschied, darin besteht, dass jeweils ein anderer Datentyp
zurückgegeben wird (beim ersten ein Dict und beim zweiten??)???
Ist es eigentlich sinnvoll eine Abfrage wie die erste zu machen?
Oder sollte man values in Verbindung mit get nur machen, wenn man bestimmte Datenfelder haben möchte?
Ansonsten weiß ich, dass es bei get nur genau ein Objekt zurückgegeben werden darf, ansonsten gibt es eine Exception.
Bei der Verwendung von Values ohne get wird eine Liste von Dicts zurückgegeben.[/i]
Django-Unterschied .values().get(url=url) <==> .get(ur
Vielleicht solltest du sagen, dass es um Django geht, in diesem Forum werden nämlich noch andere Frameworks behandelt ...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn du die Version ohne ``values()`` nutzt, geht es über ein QuerySet (zu bevorzugen) und nimmt oder genau ein Objekt raus, was er dann als Insanz deines Models zurückgibt. Bei ``values()``.. passiert irgendwas anderes, vermutlich holt er erstmal alle Werte aus der DB, was einem ``SELECT`` ohne Limitierung entsprechen würde - will man nicht haben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ein Mainpages.objects.values() ist IMHO nichts anderes als SELECT * FROM...
Interessant ist IMHO values nur dann, wenn du ihm Parameter mitgibst: Mainpages.objects.values("eins", "zwei") raus kommt dann ein SELCT eins, zwei FROM...
Schau mal hier:
http://docs.djangoproject.com/en/dev/re ... ues-fields
Meiner Meinung macht es auch ehr andere herrum Sinn, also: content = Mainpages.objects.get(url=url).values() und auch nur dann, wenn du nur eine/mehrere bestimmte Felder haben willst. Ansonsten würde ich kein values() nehmen.
Interessant ist IMHO values nur dann, wenn du ihm Parameter mitgibst: Mainpages.objects.values("eins", "zwei") raus kommt dann ein SELCT eins, zwei FROM...
Schau mal hier:
http://docs.djangoproject.com/en/dev/re ... ues-fields
Meiner Meinung macht es auch ehr andere herrum Sinn, also: content = Mainpages.objects.get(url=url).values() und auch nur dann, wenn du nur eine/mehrere bestimmte Felder haben willst. Ansonsten würde ich kein values() nehmen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Dann werden vmtl. erstmal alle Daten aus der Datenbank geholt und danach erst gefiltert, das wollte Jens auch im ersten Absatz seines letzten Posts auch sagen.ferix hat geschrieben:Was ist anders, wenn man es andersherum schreibt?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice