fixed a problem with keyed tables and record_id, thanks Ben Goosman
This commit is contained in:
@@ -1 +1 @@
|
||||
Version 1.99.4 (2012-01-23 21:15:53) stable
|
||||
Version 1.99.4 (2012-01-24 08:27:12) stable
|
||||
|
||||
@@ -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
@@ -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
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user