Goodmorning, У меня есть БД с тремя столами:web2py - программно вставить на один-ко-многим дб
db.define_table('person',
Field('name', length=100),
Field('dob', length=10),
Field('address', 'text', length=255),
Field('countryname', length=3),
Field('statename', length=100),
)
db.define_table('opslist',
Field('opid', length=10),
Field('dop', length=10),
Field('type_operation', length=25),
)
db.define_table('cardlist',
Field('opid', db.opslist),
Field('name', db.person),
Field('countryname', length=3, required=True),
Field('statename', length=100, required=True),
Field('zip', length=5, required=False),
)
Я хотел бы вставить в коде, значит, не используя sqlform или форму, некоторые данные в ... например: Если у меня есть все значения, вносимые в таблицу карточных карт, операция должна дать мне возможность автоматически добавить связанную запись (создание новой, если нет) в другие таблицы. Это потому, что это реляционный db с внешними ключами ...
Возможно ли это с помощью web2py с использованием DAL? или мне нужно написать мою сырую команду sql?
Спасибо Все
Ты говоришь, что есть данные для человека, в opslist и связанной записи cardlist, но вы не не знаю, существуют ли записи человека и opslist (чтобы их можно было создать или нет), прежде чем вставлять запись в карточный список)? Предполагая, что у вас есть данные о человеке и opslist, откуда вы знаете, что их можно использовать для идентификации единственной уникальной записи в каждой таблице (определения модели вашего лица и оп-списка не содержат никаких уникальных ограничений)? Без гарантии уникальной записи нет способа узнать, какой идентификатор нужно ввести в поле ссылки в списке карт. – Anthony
Привет, Энтони, извините, но я верю, что я не смог ничего объяснить. Я бы поместил новую информацию: person (имя и т. Д. Для таблицы person), событие операции (таблица опций) и countryname, statename zip для таблицы карт. В этом случае, каким образом я могу поместить эту информацию в db? без использования sqlform или формы? например: db.cardlist.insert (name =, opid = , countryname = , state = , zip = <12345>) –
user3319321