我需要从excel文件和带有图像的文件夹导入一些数据,excel中的每一行都描述每个条目,并在文件夹中有一个文件名列表(与条目相关的照片).
我已经完成了一个脚本,它创建数据库中的每个条目并通过django shell保存它,但我不知道如何实例化InMemoryUploadedFile以便用模型保存它.
在django 1.0中我有这个小班让我可以做我需要的,但是随着django 1.1的改变,它不再工作了.
class ImportFile(file):
def __init__(self, *args, **kwargs):
super(ImportFile, self).__init__(*args, **kwargs)
self._file = self
self.size = os.path.getsize(self.name)
def __len__(self):
return self.size
def chunks(self, chunk_size=None):
self._file.seek(0)
yield self.read()
Run Code Online (Sandbox Code Playgroud)
我正在使用这个代码来加载图像并使用模型实例保存它们.
for photo in photos:
f = ImportFile(os.path.join(IMPORT_DIR, 'fotos', photo), 'r')
p = Photo(name=f.name, image=f, parent=supply.supply_ptr)
name = str(uuid1()) + os.path.splitext(f.name)[1]
p.image.save(name, f)
p.save()
Run Code Online (Sandbox Code Playgroud)
问题是,如何从python中的文件创建InMemoryUploadedFile或TemporaryUploadedFile,或者在此上下文中可以工作的任何其他东西.
我正在尝试匹配数据库中与此示例'(11)1234-5678'的格式不匹配的所有电话.
由于空白,我在定义正则表达式时遇到了麻烦,我做了这个测试:
SELECT '(11) 1234-5678' REGEXP "\([0-9]{2}\)" -> 1
SELECT '(11) 1234-5678' REGEXP "\([0-9]{2}\).*" -> 1
SELECT '(11) 1234-5678' REGEXP "\([0-9]{2}\) " -> 0
SELECT '(11) 1234-5678' REGEXP "\([0-9]{2}\)[:blank:]" -> 0
SELECT '(11) 1234-5678' REGEXP "\([0-9]{2}\)[:space:]" -> 0
Run Code Online (Sandbox Code Playgroud)
我完全不知道为什么我不能让mysql匹配空格.
编辑:
我正在使用mysql 5.5.24
我有一个应用程序,其中有一个FormWizard有5个步骤,其中一个只应在满足某些条件时出现.
该表单适用于在线购物车上的付款向导,其中一个步骤应仅显示有可用于piking的促销活动,但是当没有促销时我想跳过该步骤而不是显示空的促销列表.
所以我希望有两种可能的流程:
step1 - step2 - step3
step1 - step3
Run Code Online (Sandbox Code Playgroud)