简化上传文件命名的小型应用程序

dj-upload-to的Python项目详细描述


DJ上传至

Travis CI build statusCode coverage percentageLatest version on PyPIWheel StatusSupported Python versions

概要

简化上传文件命名的小型应用程序。 许可证是麻省理工学院的。

安装

您可以使用pip将dj上载到从pypi发布的版本中:

$ pip install dj-upload-to

或者从github开发一个:

$ pip install -e git+https://github.com/marazmiki/dj-upload-to#egg=dj-upload-url

您无需将其包含在已安装的应用程序中

使用量

假设您有型号:

fromdjango.dbimportmodelsfromdj_upload_toimportUploadToupload_to=UploadTo()classModel(models.Model):file=models.ImageField(upload_to=upload_to)

如您所见,upload to生成可调用对象(使用调用方法传递到文件字段的upload to属性(有关详细信息,请参见django upload_to docs

当使用最初命名为myphoto.jpg的图像保存模型时,文件

将以如下名称保存:

model/ab/cd/abcdabcd-0123-4567-8901-234567890ab.jpg

其中:

  • model是从model类自动生成的前缀。您可以覆盖它
  • ab是文件名的前2个字符段
  • cd是文件名的第二个2个字符段
  • abcd-0123-4567-8901-234567890ab使用uuid文件名自动生成
  • .jpg是从原始文件中提取的小写扩展名

定制

您可以使用构造函数中的选项自定义上传到的行为

  • 前缀:文件名的前缀。默认值为dj_upload_to.not_provided。如果,则将丢失前缀。如果未显式设置,将根据模型类名自动生成
  • num_seg:分段的部分数。默认值为2
  • 段大小:字符段长度。默认值为2
  • 保存名称:使用原始名称而不自动生成。默认值为false

有一些例子:

>>>model_instance=Model()>>># Disable prefix>>>UploadTo(prefix=None)(model_instance,'file.jpg')u'c0/17/c01745b4-e70b-4dd8-a5f7-76fec32fcb83.jpg'>>># Explicitly given prefix>>>UploadTo(prefix='my_files')(model_instance,'file.jpg')u'my_files/d9/a4/d9a4ef25-11b0-41bb-a543-baaac6553024.jpg'>>># Four segment and automatically generated prefix>>>UploadTo(num_seg=4)(model_instance,'file.jpg')u'model/36/52/99/f6/365299f6-8dc5-4ca2-848d-965f002a9b72.jpg'>>># Segment length is 4 chars>>>UploadTo(seg_size=4)(model_instance,'file.jpg')u'model/3142/f2ef/3142f2ef-2680-4a99-82fc-3c8d9d3179dc.jpg'>>># Save original filename>>>UploadTo(save_name=True)(model_instance,'file.jpg')u'model/file.jpg'>>># Save original filename without prefix>>>UploadTo(save_name=True,prefix=None)(model_instance,'file.jpg')u'file.jpg'

贡献

欢迎在GitHub上提出想法、错误修复和请求

更改日志

1.1

  • 添加deconstruct()支持

1.0.2

  • 修复sad setup.py错误

1.0.1

  • 添加前缀禁用
  • 添加更改日志
  • 更新的文档

1.0.0

初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java实现双锁并发队列   java如何更改SpringWS 2.4.4版或更高版本中maxOccurs的默认限制?   java Selenium RC如何处理动态行?   java何时引入Javac StringBuilder/StringBuffer优化?   java mediaplayer在R.raw Android上失败   java JPA2:不区分大小写,就像在任何地方匹配一样   如何从JDK15中提取java预览类文件?   java与mySQL删除查询不一致   从Shutdownow()返回的java列表<Runnable>无法转换为提交的Runnable   java如何从回调接口获取对象值?   java如何获得视图的高度,在xml中可见性和高度定义为wrap_内容?   postgresql Mybatis在启动时遇到“由以下原因引起:java.net.UnknownHostException:localhost”,为什么?   带有实例调用的方法调用的java intellij格式化程序换行   由于特定的第三方库,java Proguard产生运行时错误   动画JAVA JPanel同时滑出和滑入