本文介绍 Django同时上传多张图片或文件

Django同时上传多张图片或文件

本文由在当地较为英俊的男子金天大神原创,版权所有,欢迎转载,本文首发地址 https://jinfagang.github.io 。但请保留这段版权信息,多谢合作,有任何疑问欢迎通过微信联系我交流:jintianiloveu

Fucked modelformset

Django的这个鸡巴modelformset真的是跟shit一样,难用而且我不知道它具体是做的。我的需求是这样的:

1
我有一个表,比如说User,User有一个副表Photos,因为这个Photos可能有多张照片,因此用一个副表来保存,以外键的形式连接起来。我现在用formdata把图片一次性上传上来,但是我不知道怎么把formdata里面的字段和model映射起来。

最后的解决方案是这样的: 直接request.FILES.getlist()获取到一个字段下的多个文件,然后遍历这些文件保存到本地,简单的记录一下操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pay_friend_pictures = request.FILES.getlist('pay_friend_picture')
if pay_friend_form.is_valid():
pay_friend_obj = pay_friend_form.save(commit=False)
try:
user_id = result['user_id']
user = User.objects.get(id=user_id)
pay_friend_obj.post_user = user
pay_friend_obj.save()
# save images
if len(pay_friend_pictures) > 0:
# save every image of this pay_friend information
for pic in pay_friend_pictures:
pay_friend_picture_obj = PayFriendPicture(pay_friend_picture=pic, pay_friend=pay_friend_obj)
pay_friend_picture_obj.save()
else:
pass
response = {'status': 'success',
'info': 'pay friend post success.'}
return HttpResponse(json.dumps(response))

主要是里面的图片处理逻辑,最后说一句,千万别用这个鸡巴卵的formset,like a shit man.