使用Django admin inline formset添加多个文件

时间:2014-03-12 22:33:46

标签: javascript django upload

在我的Django应用程序的管理部分中,我想扩展现有的内联formset的工作方式。目前,我有一个包含2个字段的图片的内联formset - nameimage。该模型看起来与此类似:

models.py

class Slideshow(models.Model):
    name = models.CharField(max_length=200,blank=True)
    image = models.ImageField(max_length=200,upload_to=destination)
    ...

现在,在Django管理员中,我可以在我的内联中单击“添加另一个”,这会在内联表单集中添加另一个名称和图像字段块。在该表单中,我可以选择“选择文件”并添加图像文件(以及可选的名称),单击“保存”,使用现有的Django管理功能可以很好地工作。

有没有办法让我一次向现有的内联formset添加多个图像文件?假设使用HTML多文件选择?

带有示例数据的示例表格行

<div class="grp-module grp-tbody has_original grp-dynamic-form" id="asset_set0">
    <h3 style="display: none;"><b>asset #1</b>&nbsp;&nbsp; sample-banner-444-fff.gif</h3>
    <div class="grp-tr">

        <div class="grp-td name ">
            <input class="vTextField" id="id_asset_set-0-name" maxlength="200" name="asset_set-0-name" type="text" value="test asset">
        </div>

        <div class="grp-td file ">
            <p class="file-upload">Currently: <a href="https://converse-portal-test.s3.amazonaws.com/asset_files/2014/02/13/10/52/1392317533/sample-banner-444-fff.gif?Signature=MBuCwPmV375gFfWDPKY06xP78bQ%3D&amp;Expires=1394664278&amp;AWSAccessKeyId=AKIAIMAKOOSEMJWWDRDA">asset_files/2014/02/13/10/52/1392317533/sample-banner-444-fff.gif</a> <br>Change: <input id="id_asset_set-0-file" name="asset_set-0-file" type="file"></p>
        </div>

        <div class="grp-td grp-tools-container">
            <ul class="grp-tools"><li class="grp-delete-handler-container"><input id="id_asset_set-0-DELETE" name="asset_set-0-DELETE" type="checkbox"><a href="javascript://" class="grp-icon grp-delete-handler" title="Delete Item"></a></li></ul>
        </div>

        <input id="id_asset_set-0-campaign" name="asset_set-0-campaign" type="hidden" value="25">
        <input id="id_asset_set-0-id" name="asset_set-0-id" type="hidden" value="71">

    </div>
</div>

没有数据的示例formset行

<div class="grp-module grp-tbody grp-dynamic-form" id="asset_set1">    
    <h3 style="display: none;"><b>asset #2</b>&nbsp;&nbsp;</h3>
    <div class="grp-tr">

        <div class="grp-td name ">
            <input class="vTextField" id="id_asset_set-1-name" maxlength="200" name="asset_set-1-name" type="text">
        </div>

        <div class="grp-td file ">
                <input id="id_asset_set-1-file" name="asset_set-1-file" type="file">
        </div>

        <div class="grp-td grp-tools-container">
            <ul class="grp-tools"><li><a href="javascript://" class="grp-icon grp-remove-handler" title="Delete Item"></a></li></ul>
        </div>

        <input id="id_asset_set-1-campaign" name="asset_set-1-campaign" type="hidden" value="25">
        <input id="id_asset_set-1-id" name="asset_set-1-id" type="hidden">
    </div>
</div>

顺便说一句,我已经审核了其他一些应用程序filerphotologue,这些应用程序提供了类似的功能,其代价是包含可能影响或不影响的其他几个功能我申请的其余部分。

0 个答案:

没有答案