2016-04-29 11 views
0

Wie kann ich speichern & zeigen Sie den Namen des Benutzers, der ein Formular in einer Datenbank gespeichert.Speichern Autor von Formular Web2Py

Zum Beispiel:

Ich habe eine Form, die Benutzer Produkte überprüfen kann. Ich habe dann eine Tabelle, die diese Bewertungen auflistet. Auf dem Tisch möchte ich jeden Benutzernamen neben jeder Überprüfung auflisten.

+0

Ich weiß nichts über web2py, aber vermutlich können Sie den Namen des Absenders auf die gleiche Weise in Ihrer Datenbank speichern, wie Sie den Überprüfungstext gespeichert haben. Oder ist Ihre Frage "Wie ermittle ich den Namen der Person, die mein Formular benutzt?"? Ich denke nicht, dass das etwas ist, was Sie aus ihrem User Agent oder irgendetwas herausholen können - Sie müssen ein Eingabefeld dafür haben. – Kevin

+0

Ja, darauf ziele ich ab, kann ich den Benutzernamen neben der Überprüfung automatisch in die Review-Datenbank speichern. Ohne dass sie sich selbst eingeben müssen. Ich lege ein Benutzerfeld mit ihren Details vor. – Gareth

Antwort

1

Sie könnten ein Referenzfeld fügen die db.auth_user Tabelle zeigt (oder was auch immer Tabelle, in der Sie speichern Benutzerdaten):

db.define_table('review', 
    ..., 
    Field('reviewer', 'reference auth_user', default=auth.user_id, writable=False), 
    ...) 

Mit dem obigen Code, den Standardwert für das Feld „reviewer“ ist die ID des aktuell angemeldeten Benutzers. Das Feld ist nicht beschreibbar, daher hat der Benutzer keine Möglichkeit, dies zu ändern (im Formular zur Überprüfung des Eintrags möchten Sie vielleicht auch das Attribut readable auf False setzen, da der Autor es nicht sehen muss).

dann zusammen mit der Überprüfung des Rezensenten Namen anzuzeigen, können Sie entweder ein join tun oder verwenden recursive select (ersteres ist effizienter, wenn man auf einmal viele Bewertungen sind Anzeigen, wie der rekursive Auswahl Ansatz eine separate Datenbank-Abfrage erfordert um den Autor jeder Rezension zu erhalten).

+0

Danke nochmal! :) – Gareth