起因:
现在我有两个文件夹pro1和pro2,
pro1下面有0.mp4,1.mp4,pro2下面有0.mp4和1.mp4,我用django的
video = models.FileField(upload_to = 'myvideo')
虽然可以将视频都上传到myvideo目录下面,但是myvideo下面的文件是:
0. mp4,0_2.mp4,1.mp4,1_2.mp4了,因为出现一样的名字,django自动做了转换。
我希望能够直接在myvideo下面上传得到pro1和pro2两个文件夹,然后两个文件夹中
分别包含各自的0.mp4,1.mp4。
过程:
起初是参考了这篇文章:http://oteam.cn/2008/10/4/dynamic-upload-paths-in-django/
然后我想到的方法,就是添加一个name字段用于作为视频文件的父目录,即用来填写pro1,pro2,。。。。
然后将upload_to固定的字符串改变为一个返回上传文件位置的函数,在这个函数中取获取之前的name字段,并添加到upload/下面这样就形成了动态目录
代码如下:
def get_photo_path(instance, filename): productionName = instance.name print productionName , " " , filename return 'operatevideo/%s/%s' % (productionName , filename) class Videos(models.Model): name = models.CharField(unique=True,max_length = 255) independent_video = models.FileField(upload_to = get_photo_path) simulated_video = models.FileField(upload_to = get_photo_path ,validators) class Meta: db_table = 'videos'
大功告成,哈哈