django inline formset用于上传多个不呈现表单的文件

时间:2015-03-19 12:36:48

标签: python django formset inline-formset

我有模特:

class MediaInfo(models.Model):
    title = models.CharField(max_length=50,blank=True)
    description = models.CharField(max_length=255,blank=True)
    media_file = models.FileField(upload_to=get_upload_file_name)

    def __unicode__(self):
        return self.title

class Media(models.Model):
    media_files = models.ForeignKey(MediaInfo)

    def __unicode__(self):
        return self.media_files

我想要的是渲染一个模板,我得到一个简单的浏览按钮,我可以选择并上传多个'media_file'。

我开始知道它可以从内联formset执行,因此在我的视图中使用它。我的观点看起来像

def MediaAddView(request):
    #med = MediaInfo.objects.al()
    MediaInlineFormset = inlineformset_factory(MediaInfo, Media)
    if request.method == "POST":
        formset = MediaInlineFormset(request.POST, request.FILES)
        if formset.is_valid():
            formset.save()
            return HttpResponseRedirect("some url")
        else:
            return render_to_response("media_add.html",
                {"formset":formset,},
                context_instance=RequestContext(request))
    else:
        formset = MediaInlineFormset()
        return render_to_response("media_add.html", 
            {"formset":formset,}, context_instance=RequestContext(request))

我的模板是:

<form method="post" action="" enctype="multipart/form-data">
    {% csrf_token %}
    {{ formset.management_form }}
    {% for form in formset %}
        {{form.media_file}}
    {% endfor %}

    <input type="submit" value="Submit" />

</form>

当我这样做而不是获取上传文件的浏览按钮时,我只会提交按钮。

如何只获取浏览按钮并添加多个文件或图像?

我的代码有什么问题? 需要帮助

0 个答案:

没有答案