Django EditForm не загружает существующий файл с пользовательским виджетом

В моем Django приложении я создал форму с помощью forms.py. Когда я редактирую эту форму, я не могу увидеть существующие файлы этой формы, да, я установил экземпляр для этой EditForm и я могу видеть данные других текстовых полей, я не могу видеть существующие данные ввода файла. Если я удалю класс, который я добавил в виджет, то я могу видеть данные. Почему так? И как я могу использовать оба виджета и видеть существующие данные? Ниже приведен мой код:

forms.py:

class ContentCreateForm(forms.ModelForm):
    text_instruction = forms.FileField(widget=forms.FileInput(attrs={'accept': '.txt', 'class': 'form-control'})) # If I remove this I can see the existing files
    course_video = forms.FileField(widget=forms.FileInput(attrs={'accept': 'video/*', 'class': 'form-control'})) # If I remove this I can see the existing files
    preview_video = forms.FileField(widget=forms.FileInput(attrs={'accept': 'video/*', 'class': 'form-control'}), required=False) # If I remove this I can see the existing files
    resource_file = forms.FileField(widget=forms.FileInput(attrs={'accept': '.pdf', 'class': 'form-control'})) # If I remove this I can see the existing files

    class Meta:
        model = Content
        fields = '__all__'

views.py:

def myView(request, id):
    current_content = Content.objects.get(id=id)
    form = forms.ContentCreateForm(instance=current_content)
    context = {
        'form': form,
    }
    return render(request, 'editForm.html', context)

Я думаю, что проблема здесь в том, что вы не используете поля из вашей модели (вы используете ModelForm). Мне нужно взглянуть на вашу модель, чтобы быть уверенным, но я подозреваю, что вы пытаетесь сделать что-то вроде этого:

class ContentCreateForm(forms.ModelForm):
    class Meta:
        model = Content
        fields = '__all__'
        widgets = {
            'course_video' : forms.FileInput(attrs={
                'accept': 'video/*', 
                'class': 'form-control'
            },
            'preview_video' : etc etc {
            })
        }

Вид кажется мне нормальным.

Вернуться на верх