我想输入类似的内容(通过管理页面):
text = 't(es)t'
并将它们另存为:
'test'
在数据库上。
我使用这个正则表达式来修改它们:
re.sub(r'(.*)\({1}(.*)\){1}(.*)', r'\1\2\3', text)
我知道如何转换文本't(es)t'
to 'test'
但问题是
当我使用时
name = models.CharField(primary_key=True, max_length=16)
输入文本(来自管理员)。立即保存到数据库,保存前不能修改。
最后,来自管理员的单个输入text = 't(es)t'
(查菲尔德)。
我想要什么?
- To use
't(es)t'
作为字符串变量。
- Save
'test'
到数据库
尝试覆盖模型中的保存方法,
class Model(model.Model):
name = models.CharField(primary_key=True, max_length=16)
# This should touch before saving
def save(self, *args, **kwargs):
self.name = re.sub(r'(.*)\({1}(.*)\){1}(.*)', r'\1\2\3', self.name)
super(Model, self).save(*args, **kwargs)
Update:
class Model(model.Model):
name = models.CharField(primary_key=True, max_length=16)
name_org = models.CharField(max_length=16)
# This should touch before saving
def save(self, *args, **kwargs):
self.name = re.sub(r'(.*)\({1}(.*)\){1}(.*)', r'\1\2\3', self.name)
self.name_org = self.name # original "t(es)t"
super(Model, self).save(*args, **kwargs)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)