限制用户上传的图片数量

  • 本文关键字:用户 django
  • 更新时间 :
  • 英文 :


我的网站上有一个博客功能,用户可以上传一个主图片和多个辅助图片。我面临的问题是,我希望能够限制用户可以上传的图像数量。我知道我可以在上面使用for循环,但如果用户稍后返回并添加更多,它将使for循环无用。因此,我认为最好的方法是在模型中添加一个字段来统计上传的图像数量,然后我可以使用if语句来检查上传的图像数量是否超过了所述数量。我将如何去获得图像的数量,并将它们添加到帖子,而它正在创建。或者我应该用另一种方式来处理

视图

@login_required
def createPostView(request):
currentUser = request.user
postForm = PostForm()
if request.method == 'POST':
postForm = PostForm(request.POST, request.FILES)
if postForm.is_valid():
PostFormID = postForm.save(commit=False)
PostFormID.author = request.user
PostFormID.save()                   

for f in request.FILES.getlist('images'):          
test = PostImagesForm(request.POST, request.FILES)
if test.is_valid():
instance = test.save(commit=False)
instance.post_id = PostFormID.id
instance.images = f
instance.save()   
return HttpResponseRedirect("/")

return render(request, 'blog/post_form.html', {'postForm': postForm, 'PostImagesForm':PostImagesForm})

在循环之前可以使用len来检查列表中的项目总数。

len(request.FILES.getlist('images'))
>>> 10

比如:

if len(request.FILES.getlist('images')) > 3:
raise Exception("Only three images allowed")
else:
// process the images in the for loop

最新更新