for your own tables you should do db.tablename.esposes=['field1','field2','etc']
to list the fields that you want to appear in forms and exclude those you do not want. db.tablename.displays=['field1','field2','etc'] to list fields that should be displayed by t2.display I will look into the other issues. On Oct 17, 5:58 pm, billf <[EMAIL PROTECTED]> wrote: > I am trying to test the behaviour of the new t2 "stamped" columns. > > The T2 manual says of the "Stamp" pattern: "Automatically stamp table > records for creation date, author, last modification date and author > of the last modification." I thought initially that this meant that > those columns would be automatically added to all tables (like id) but > now I can see from the _stamp() method how the 8 columns are stamped > if present however I have a few observations: > > In my example table I have included created_on and modified_on simple >c; as 'datetime' and no other attributes. > > 1) The auto create view exposes both created_on and modified_on as > input fields and insists on datetimes being entered. I would have > expected that neither column should be exposed as any input will be > overridden by _stamp(). > > 2) The automatic update view exposes both created_on and modified_on > as input fields and insists on datetimes being entered. I would have > expected that both columns should be display only and any input > ignored or responded to as "error tampered with". It must be illegal > to change the create attributes and the modified attributes should be > set by _stamp(). > > 3) When a record is updated the modified_on timestamp does not > change. I think this is because _stamp() stores the new stamp values > in form.vars but these values never make it into the fields[] list > that is used to update the record on the database. > > 4) (referring back to an earlier thread) the modified_on value is not > included in the update and delete condition to highlight race > conditions. To a degree, I can understand this as t2 is built upon > web2py and the update() and delete() methods are in web2py. Perhaps a > solution would be the ability to pass SQLFORM an argument to be used > as the condition in update() and delete(). This would default to > "self.table.id==self.record.id" but could be passed in from t2 as > "self.table.id== self.record.id and > self.table.modified_on==self.record.modified_on" if the modified_on > column was present. This would seem to keep the backwards > compatibility of web2py but allow t2 to utilise the new modified_on > column. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

