在Django管理界面中上传多张图片

9
我目前正在为客户构建一个作品集网站,但是在一个小区域遇到了麻烦。我想为每个作品集项目上传多张图片(数量不定),但是我找不到明显的方法来实现。
我认为最用户友好的方式是使用带有JavaScript控件的文件上传表单,允许用户根据需要添加更多字段。有人遇到过这样的问题吗?事实上,是否有任何自定义库可以解决我的问题?
我以前很少需要修改管理工具,所以我真的不知道该从哪里开始。
非常感谢能够提供帮助的任何人。
2个回答

9
你可以很容易地使用Javascript扩展管理界面。这里有一篇关于使用jQuery实现你想要的功能的好文章
你只需要将他的所有代码放入一个Javascript文件中,然后在admin.py中包含以下内容即可:
class Photo(admin.ModelAdmin):
    class Media:
        js = ('jquery.js', 'inlines.js',)

看他的源代码,您还需要使用JavaScript动态添加链接以添加更多行内元素,但这很容易实现:

$(document).ready(function(){
    // Note the name passed in is the model's name, all lower case
    $('div.last-related').after('<div><a class="add" href="#" onclick="return add_inline_form(\'photos\')">');
});

你可能需要进行一些样式设置,以使它看起来更加正确,但这应该可以让你朝着正确的方向开始。

另外,由于你在内联环境中,可以查看inline sort snippet


9

Photologue是一个功能丰富的Django照片应用程序。例如,它允许您将图库作为zip文件上传(从某种意义上说,这意味着一次上传多个文件),自动创建不同自定义大小的缩略图并可以对图像应用效果。我曾在一个项目中使用过它,集成并不太困难。


Photologue看起来是一个不错的库,肯定会很有用。谢谢你的建议。 - Gary Chambers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接