• Hallo zusammen,
    ich habe ein paar Schwierigkeiten beim Entwickeln eines ZOPE Produkts.

    Die Schwierigkeit fängt eigentlich schon beim Entwurf an.
    Ich habe eine Klasse User, sowie eine Klasse um User in einer DB zu speichern und auch wieder zum auslesen. Beim auslesen wird eine Liste mit User Objekten zurückgegeben. In Python hab ich folgende Funktion:

    Code
    def get_users(self):
        users = dao.get_users()
        for user in users:
            print "Benutzername: " + user.name
            print "Alter: " + user.age
        ...

    Für meine Page Template habe ich folgende Funktion

    Code
    def get_user(self):
        return dao.get_users()

    In meinem Page Template hab ich folgenden HTML Code

    HTML
    <span tal:repeat="user here/get_user">
      <span tal:content="user/name">Name</span>
      <span tal:content="user/age">Alter</span>
    </span>

    Und ZOPE sagt jetzt folgendes

    Zitat

    Unauthorized: You are not allowed to access 'name' in this context

    Wie kann ich die Rechte ändern sodass mein Page Template auf die User Objekte zugreifen kann?

    2 Mal editiert, zuletzt von donmarten (25. September 2009 um 16:13)

  • Hallo zusammen,
    ich habe ein paar Schwierigkeiten beim Entwickeln eines ZOPE Produkts.

    Die Schwierigkeit fängt eigentlich schon beim Entwurf an.
    Ich habe eine Klasse User, sowie eine Klasse um User in einer DB zu speichern und auch wieder zum auslesen. Beim auslesen wird eine Liste mit User Objekten zurückgegeben. In Python hab ich folgende Funktion:

    Code
    def get_users(self):
        users = dao.get_users()
        for user in users:
            print "Benutzername: " + user.name
            print "Alter: " + user.age
        ...

    Für meine Page Template habe ich folgende Funktion

    Code
    def get_user(self):
        return dao.get_users()

    In meinem Page Template hab ich folgenden HTML Code

    HTML
    <span tal:repeat="user here/get_user">
      <span tal:content="user/name">Name</span>
      <span tal:content="user/age">Alter</span>
    </span>

    Und ZOPE sagt jetzt folgendes
    Wie kann ich die Rechte ändern sodass mein Page Template auf die User Objekte zugreifen kann?

    Zope 2? Zope 3? Grok?

    Ein Skript und ein Template macht noch lange kein Zope Product..
    bitte mehr Details und eine sinnvolle Beschreibung was Du vor hast.

  • Hallo ajung,
    ich benutze Zope 2.7.

    Ich möchte eine Tabelle mit Benutzern ausgeben. Die Benutzer sind in einer Datenbank gespeichert. Ich habe eine Klasse um Objekte aus der Datenbank zu laden und zu speichern. Ausserdem habe ich noch eine Klasse für den Benutzer. Wenn ich jetzt zB alle Benutzer aus der Datenbank haben möchte, schreibe ich

    Code
    users = dao.get_users()


    Als Ergebnis bekomme ich eine Lsite mit User Objekten zurück

    Mit

    Code
    for user in users:
        user.username
        ...


    kann ich ja die auf die Attribute zugreifen.

    In meinem Zope Produkt habe ich eine Funktion

    Code
    def get_users:
        return dao.get_users()

    In meinem Page Template möchte ich auf die Funktion zugreifen, was auch funktioniert. Ich bekomme eine Liste mit Benutzerobjekten zurück. Wenn ich aber mit der tal:repeat Funktion auf jeden einzelnen Benutzer zugreifen möchte, um die Attirbute anzuzeigen. bekomme ich den Unauthorized Error.

    Meine Code Schnippsel sind nur Ausschnitte drumherum gibts noch mehr Code, der aber nicht relevant sein dürfte. Falls doch kann ich den auch noch Posten.
    Ich hoffe ich konnte mein Problem einigermaßen verständlich darlegen :)

    gruss
    martin