2014-07-25 95 views
0

是否有任何選項可以獲取ModelForm在views.py中上傳的新文件名?在視圖中訪問從ModelForm重命名的圖像名稱?

我有這樣的ModelForm。我要重命名的用戶唯一的名稱上傳的所有文件,並按照本指南Enforce unique upload file names using django?

models.py

class SomePhotos(models.Model): 

    def get_file_path(instance, filename): 
     ext = filename.split('.')[-1] 
     filename = "%s.%s" % (uuid.uuid4(), ext) 
     return os.path.join('some_photos/', filename) 

    image = models.ImageField(upload_to = get_file_path) 
    link = models.URLField(verbose_name = u'URI', null = True, blank = True) 
    title_color = RGBColorField() 

這個偉大的工程 - 文件保存爲唯一的名稱正確的目錄,但我在vievs功能.py停止工作,因爲在獨特的重命名之前我一直使用POST的文件名,但現在文件有其他,唯一的名稱!

views.py

filename = request.FILES['image'].name 

forms.py

class MotivatorForm(ModelForm): 
    class Meta: 
     model = SomePhotos 

回答

0

一旦你救了你的ModelForm,您可以在該文件的路徑使用實例的.image.path

def myview(request): 
    if request.method == "POST": 
     form = MotivatorForm(request.POST, request.FILE) 
     if form.is_valid(): 
      instance = form.save() 
      filepath = instance.image.path 
    # etc... 
得到