2014-07-25 1 views
0

Views.py에서 ModelForm에 업로드 된 새 파일 이름을 가져 오는 옵션이 있습니까?보기에서 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에서 파일 이름을 사용하고 있었기 때문에 작동을 멈췄습니다. 그러나 이제는 파일에 다른 고유 한 이름이 있습니다! 당신이 당신의 ModelForm을 저장하면

views.py

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

forms.py

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

답변

0

, 당신은 당신의 인스턴스의 .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... 
사용하여 파일의 경로에서 얻을 수 있습니다
관련 문제