Carga de archivos Django usando el formulario

Hola, mi primera pregunta en este sitio web, lo siento por mi inglés. Así que trato de cargar un archivo en un modelo en el marco de Django.

class banner(models.Model):
#id is made by Django
name = models.CharField(max_length=255)
created_by = models.CharField(max_length=255)
company = models.CharField(max_length=255)
register_date = models.DateField(auto_now_add=True)
file = models.FileField(null=True, blank=True)
file_name = models.CharField(max_length=255)

este es el modelo

class BannerForm(forms.Form):
name=forms.CharField(max_length=255)
created_by=forms.CharField(max_length=255)
company=forms.CharField(max_length=255)
data_type=forms.CharField(max_length=255)
register_date=forms.DateField()
file=forms.FileField()
file_name=forms.CharField(max_length=255)

esta es la forma

def add_form (request): form = BannerForm () last = models.banner.objects.all (). last ()

if request.method == "POST":
    form = forms.BannerForm(request.POST, request.FILES or None)
    if form.is_valid():
        form.cleaned_data['created_by']
        new_banner=models.banner()
        new_banner.id=last.id+1
        new_banner.name=form.cleaned_data['name']
        new_banner.register_date=form.cleaned_data['register_date']
        new_banner.company=form.cleaned_data['company']
        new_banner.file=form.cleaned_data['file']
        new_banner.file_name=new_banner.file.name
        new_banner.created_by=form.cleaned_data['created_by']
        new_banner.save()

return render(request, "add_banner.html",{"form":form})

esta es la vista. Ahora, cada vez que intento agregar un banner, busco el archivo, pero después de presionar enviar, es que el archivo debe elegirse, como si no reconociera lo que busco en el botón de formulario. ¿sugerencia?

Respuestas a la pregunta(3)

Su respuesta a la pregunta