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',
|
'datetime': 'DATE',
|
||||||
'id': 'NUMBER PRIMARY KEY',
|
'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': '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:integer': 'CLOB',
|
||||||
'list:string': 'CLOB',
|
'list:string': 'CLOB',
|
||||||
'list:reference': 'CLOB',
|
'list:reference': 'CLOB',
|
||||||
|
|||||||
+4
-5
@@ -754,10 +754,8 @@ class SQLFORM(FORM):
|
|||||||
|
|
||||||
self.record_id = record_id
|
self.record_id = record_id
|
||||||
if keyed:
|
if keyed:
|
||||||
if record:
|
self.record_id = dict([(k,record and str(record[k]) or None) \
|
||||||
self.record_id = dict([(k,record[k]) for k in table._primarykey])
|
for k in table._primarykey])
|
||||||
else:
|
|
||||||
self.record_id = dict([(k,None) for k in table._primarykey])
|
|
||||||
self.field_parent = {}
|
self.field_parent = {}
|
||||||
xfields = []
|
xfields = []
|
||||||
self.fields = fields
|
self.fields = fields
|
||||||
@@ -1037,7 +1035,8 @@ class SQLFORM(FORM):
|
|||||||
formname_id = '.'.join(str(self.record[k])
|
formname_id = '.'.join(str(self.record[k])
|
||||||
for k in self.table._primarykey
|
for k in self.table._primarykey
|
||||||
if hasattr(self.record,k))
|
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:
|
else:
|
||||||
(formname_id, record_id) = (self.record.id,
|
(formname_id, record_id) = (self.record.id,
|
||||||
request_vars.get('id', None))
|
request_vars.get('id', None))
|
||||||
|
|||||||
+1
-2
@@ -3177,8 +3177,7 @@ class Crud(object):
|
|||||||
method: Crud.delete(table, record_id, [next=DEFAULT
|
method: Crud.delete(table, record_id, [next=DEFAULT
|
||||||
[, message=DEFAULT]])
|
[, message=DEFAULT]])
|
||||||
"""
|
"""
|
||||||
if not (isinstance(table, self.db.Table) or table in self.db.tables) \
|
if not (isinstance(table, self.db.Table) or table in self.db.tables):
|
||||||
or not str(record_id).isdigit():
|
|
||||||
raise HTTP(404)
|
raise HTTP(404)
|
||||||
if not isinstance(table, self.db.Table):
|
if not isinstance(table, self.db.Table):
|
||||||
table = self.db[table]
|
table = self.db[table]
|
||||||
|
|||||||
Reference in New Issue
Block a user