从视图中将多个请求文件传递给方法?

时间:2013-11-15 18:15:50

标签: django forms file request save

当您将表单数据传递给表单方法时,在Django中

,您通常会在视图中调用该方法从表单 .data ['whateverdata']更改对象。到自我 .data ['whateverdata']。但是当传递请求文件时(在我的情况下为2),Self似乎不起作用request.FILES ['whateverdata']。关于如何安排这个的任何想法。

查看

def upload(request):
    if request.method == "POST":
        form = VastTagForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponse("SUCCESS")
        else:
            return HttpResponse("form isn't valid")

表格方法

def save(self):
    objs = VastTag.objects.create(media_impression=self.data['media_impression'],  
            media_file=self.FILES['media_file'], 
            companion_file=self.FILES['companion_file'])

1 个答案:

答案 0 :(得分:1)

不确定这是否是最佳做法,但它可以完成工作。我使保存函数采用另一个参数,并在视图中访问文件时;我将它传递给了保存功能。

查看

def upload(request):
    if request.POST:
        form = VastTagForm(request.POST, request.FILES)
        if form.is_valid():
            form.save(request.FILES)
            return HttpResponse("SUCCESS")
        else:
            return HttpResponse("form isn't valid")

FORM METHOD

def save(self, files):
    objs = VastTag.objects.create(media_impression=self.data['media_impression'], 
            media_file=files['media_file'], 
            companion_file=files['companion_file'])