我有这个基本的,众所周知的多文件上传表单.这样的东西......
<input type="file" multiple="multiple" name="something[]" />
Run Code Online (Sandbox Code Playgroud)
有没有办法(最好是硬编码选项)来限制用户可以选择的文件数量?限制我的意思是严格阻止,而不仅仅是超过数字的警告.
提前致谢.:)
我使用jquery文件上传将文件上传到服务器.我想限制用户上传最多6个文件.我搜索wiki jquery文件上传,但没有找到它的参数.有什么方法可以限制用户的上架数量
我有一个多文件上传,并希望将用户限制为每个上传 3 次。我的问题是我需要知道user已经在数据库中创建了多少个文件以及他们当前正在上传多少个文件(他们可以一次上传多个文件,并且可以上传多次)。
我尝试了很多事情,包括:
创建验证器(验证器传递的是添加的实际文件,而不是model,因此我无法访问model以获取它的id调用if StudentUploadedFile.objects.filter(student_lesson_data=data.id).count() >= 4:)。
在clean(self):( 中clean进行验证一次只通过一个实例,并且在清除所有文件之前不会更新数据库,因此我可以计算数据库中已有的文件,但无法计算当前正在上传的文件数量)。
使用pre-save方法(如果在传递给我的pre-save方法的每个文件之间更新了数据库,它将起作用,但只有在上传的所有文件都通过我的pre-save方法后才更新数据库)。
我的post-save尝试:
@receiver(pre_save, sender=StudentUploadedFile)
def upload_file_pre_save(sender, instance, **kwargs):
if StudentUploadedFile.objects.filter(student_lesson_data=instance.data.id).count() >= 4:
raise ValidationError('Sorry, you cannot upload more than three files')
Run Code Online (Sandbox Code Playgroud)
编辑:
模型.py
class StudentUploadedFile(models.Model):
student_lesson_data = models.ForeignKey(StudentLessonData, related_name='student_uploaded_file', on_delete=models.CASCADE)
student_file = models.FileField(upload_to='module_student_files/', default=None)
Run Code Online (Sandbox Code Playgroud)
视图.py
class StudentUploadView(View):
def get(self, request):
files_list = StudentUploadedFile.objects.all()
return render(self.request, 'users/modules.html', …Run Code Online (Sandbox Code Playgroud)