我有一个像下面这样的模型。无论输入哪个URL,我都想在将每个URL(例如numpy.float64
或http://
)中删除协议之前,先将其存储到数据库中。有任何过滤功能吗?
https://
答案 0 :(得分:1)
您可以使用正则表达式删除协议,然后将其保存在模型上。
import re
from .models import Store
address_before_cleaning = "https://www.google.com"
address_after_cleaning = re.sub('[\d\w]+://', '', address_before_cleaning)
store_object = Store()
store_object.url = address_after_cleaning
store_object.save()
this link中有关于re的文档
答案 1 :(得分:1)
您应该重写save
方法,以便在模型字段存储在数据库中之前对其进行操作。例如:
class Store(models.Model):
url = models.CharField(max_length=100)
...
def save(self, *args, **kwargs):
self.url = self.url.split('//')[-1]
super(Store, self).save(*args, **kwargs)
有关从任何URL删除方案(http或https部分)的更兼容的方法,另请参见manual highlighting of text。