网上搜了好久没有搜到,例如我有一个数据表:
find=a.obejects.all()
a.id
里面的值格式为:
ESN00000.11 ESN246554.12 ESN89728975.13 ESN123131.12 .....
我想把点后面的值删除,然后对应增加到新的 a.id2 中
这个可行吗?脑袋快烂了````
1 stamaimer 2016-11-25 23:38:59 +08:00 via iPhone 如果小数点后面固定只有两位的话,可以使用 slice ,如果不固定可以使用正则表达式。 |
![]() | 2 windfarer 2016-11-26 01:05:00 +08:00 via Android RTFM |
![]() | 3 dtfm 2016-11-26 02:04:52 +08:00 via Android 如一楼所言,正则大概可以这么干 先分组 m=re.match(^([\w]+).([\d]+)$,a.id),然后取出其中的 m[1]和 m[2] |
![]() | 4 guoqiao 2016-11-26 04:20:47 +08:00 难道不是 id1, id2 = id.split('.') 吗? |
![]() | 5 georgema1982 2016-11-26 04:52:10 +08:00 完全不明白你的需求是什么。 id 本来就是存储和业务无关的内容,你要修改 id 的值干什么? |
![]() | 6 ericls 2016-11-26 07:20:24 +08:00 ![]() 先改 model 再手动 migrate 一下 |
![]() | 7 pimin 2016-11-26 07:27:53 +08:00 via Android |
9 kangsgo OP @ericls 意思就是数据库里的数据用正则搞一下,然后插入到新的位置,然后加一个 model 么,有没有简便一些的方法?模式好像不能过滤吧,如果模版可以过滤或者用正则就好了 |
![]() | 10 ericls 2016-11-26 12:48:25 +08:00 via iPhone @kangsgo 如果这个数据只是展示 而不是查询 你也可以直接 override model 的 __init__() |
12 YaronYang 2016-11-27 10:54:36 +08:00 小白啊,感觉数据量小扔进 dict 直接切片不就完了.. |
![]() | 13 zmrenwu 2016-11-27 18:08:21 +08:00 考虑到数据库表已经存在,你应该再查一下 migrate 的文档,代码楼上已经给出了答案。 |