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).
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
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