我想更新数据库表单控制器记录中的某个字段,因为我知道哪个记录是哪个字段,是哪个字段。我该怎么做?
例如:在表格中'学生'在数据库中有一个称为性别的字段,它是“男性”和“男性”。或者'女性'。添加了许多记录后,我添加了一个名为' gender_description'的新字段。它应该是' girl'当性别是女性和“男孩”时如果性别是男性。我想自动为所有记录填充这个新字段。我如何实现这一目标?
答案 0 :(得分:1)
在web2py shell中,您可以执行以下操作:
db(db.students.gender == 'male').update(gender_description='boy')
db(db.students.gender == 'female').update(gender_description='girl')
您不希望在应用代码中执行此操作,因为上述操作只能运行一次。另外,请确保" gender_description"字段已添加到模型定义中,并且已运行迁移(只要启用了迁移,这将自动发生。)
注意,如果"性别"之间始终存在一对一的对应关系。和" gender_description",这可能不是最好的数据库设计。
作为替代方案,您可以考虑在web2py中创建virtual field:
db.define_table('students',
Field('gender', ...),
Field.Virtual('gender_description',
lambda r: 'boy' if r.gender == 'male' else 'girl'),
...)