fixed a problem with keyed tables and record_id, thanks Ben Goosman

This commit is contained in:
Massimo Di Pierro
2012-01-24 08:27:17 -06:00
parent 61a3cc9461
commit f98ef25d32
4 changed files with 8 additions and 8 deletions
+1 -1
View File
@@ -1 +1 @@
Version 1.99.4 (2012-01-23 21:15:53) stable
Version 1.99.4 (2012-01-24 08:27:12) stable
+2
View File
@@ -2073,6 +2073,8 @@ class OracleAdapter(BaseAdapter):
'datetime': 'DATE',
'id': 'NUMBER PRIMARY KEY',
'reference': 'NUMBER, CONSTRAINT %(constraint_name)s FOREIGN KEY (%(field_name)s) REFERENCES %(foreign_key)s ON DELETE %(on_delete_action)s',
'reference FK': ', CONSTRAINT FK_%(constraint_name)s FOREIGN KEY (%(field_name)s) REFERENCES %(foreign_key)s ON DELETE %(on_delete_action)s',
'reference TFK': ' CONSTRAINT FK_%(foreign_table)s_PK FOREIGN KEY (%(field_name)s) REFERENCES %(foreign_table)s (%(foreign_key)s) ON DELETE %(on_delete_action)s',
'list:integer': 'CLOB',
'list:string': 'CLOB',
'list:reference': 'CLOB',
+4 -5
View File
@@ -754,10 +754,8 @@ class SQLFORM(FORM):
self.record_id = record_id
if keyed:
if record:
self.record_id = dict([(k,record[k]) for k in table._primarykey])
else:
self.record_id = dict([(k,None) for k in table._primarykey])
self.record_id = dict([(k,record and str(record[k]) or None) \
for k in table._primarykey])
self.field_parent = {}
xfields = []
self.fields = fields
@@ -1037,7 +1035,8 @@ class SQLFORM(FORM):
formname_id = '.'.join(str(self.record[k])
for k in self.table._primarykey
if hasattr(self.record,k))
record_id = dict((k, request_vars[k]) for k in self.table._primarykey)
record_id = dict((k, request_vars.get(k,None)) \
for k in self.table._primarykey)
else:
(formname_id, record_id) = (self.record.id,
request_vars.get('id', None))
+1 -2
View File
@@ -3177,8 +3177,7 @@ class Crud(object):
method: Crud.delete(table, record_id, [next=DEFAULT
[, message=DEFAULT]])
"""
if not (isinstance(table, self.db.Table) or table in self.db.tables) \
or not str(record_id).isdigit():
if not (isinstance(table, self.db.Table) or table in self.db.tables):
raise HTTP(404)
if not isinstance(table, self.db.Table):
table = self.db[table]