Ask Your Question

Revision history [back]

To allow users to upload multiple files in Django admin models, you can follow these steps:

  1. In your models.py file, create a model field for your files using the FileField or ImageField class. Make sure to set the 'upload_to' attribute to specify where the files should be saved.

    Example:

    from django.db import models
    
    class MyModel(models.Model):
        files = models.FileField(upload_to='uploads/')
    
  2. In your admin.py file, create a form for your model using the ModelForm class. Set the widget for the file field to FileInputMultiple.

    Example:

    from django import forms
    from django.contrib import admin
    from django.forms import FileInputMultiple
    
    from .models import MyModel
    
    class MyModelForm(forms.ModelForm):
        class Meta:
            model = MyModel
            fields = ['files']
            widgets = {
                'files': FileInputMultiple()
            }
    
    class MyModelAdmin(admin.ModelAdmin):
        form = MyModelForm
    
    admin.site.register(MyModel, MyModelAdmin)
    
  3. Make sure to include the form field in your admin model fields list so the form is displayed in the admin interface.

    Example:

    class MyModelAdmin(admin.ModelAdmin):
        form = MyModelForm
        list_display = ['id', 'files']
        fields = ['files']
    

With these steps, your users will now be able to upload multiple files using the Django admin interface.