Seite 1 von 1

[django] Verständnisproblem iterieren und templates

Verfasst: Donnerstag 3. Dezember 2009, 12:24
von normic
Hallo,
ich möchte gern die Daten eines Datensatzes aus einem Model ausgeben, also quasi ein detail_view.

Der View sieht hier so aus:

Code: Alles auswählen

def entry_detail(request, id):
    return render_to_response('entry_detail.html', {'Entry': Entry.objects.get(pk=id) } )
In dem Template kann ich natürlich per {{ Entry.fieldname }} auf die einzelnen Felder zugreifen.
Ein Versuch mittels Schleife die einzelnen Felder zu durchlaufen - so wie es in dem Eingabeform ist - führt aber zu einem Fehler "Object Entry is not iterable".

Gibt es eine Möglichkeit die Felder entsprechend zu durchlaufen?
Erstens bin ich natürlich zu faul die Felder jeweils einzeln anzugeben und zweitens fürchte ich hier einem bösen Denk/Verständnisfehler aufzusitzen.

mfg
Michael

Verfasst: Donnerstag 3. Dezember 2009, 17:07
von apollo13
Nein kannst du nicht, zumindest auf keinem einfachen/offensichtlichen Weg

Verfasst: Donnerstag 3. Dezember 2009, 17:23
von jens
Denke am einfachsten wäre es noch im view eine Liste der Feldnamen zu erzeugen...

Verfasst: Donnerstag 3. Dezember 2009, 18:32
von normic
Puh, ich dachte schon ich hätte ein Brett vor'm Kopf ;)

@jens: Ich glaube ehe ich das mache, versuch ich wieder ein Form zu nutzen und dieses readonly darzustellen, da gibt's ja so diverse Ansätze.

Jedenfalls vielen Dank Euch beiden.

Verfasst: Samstag 5. Dezember 2009, 10:32
von sma

Code: Alles auswählen

class IterableMixin:
    def __iter__(self):
        return self.__dict__.iteritems()


class Person(IterableMixin):
    def __init__(self, name, age):
        self.name, self.age = name, age

for n, v in Person("ich", 99):
    print n, "=", v
Stefan