Когда я обновляю свое поле, я должен заменить загружаемый файл изображения. Я хочу, чтобы мое изображение обрабатывалось как другие поля в django.

Я не хочу заменять файл изображения при обновлении другого текста, а имя файла должно отображаться в разделе "Загрузить файл", чтобы я мог изменить файл в соответствии с моими потребностями. На данный момент я сталкиваюсь с проблемой, что мне приходится снова загружать файл при каждом обновлении другого поля. изображение для справки. Image for clarity

eupdate.html

<input type="text" name="institution" id="institution" placeholder="Institution Name" class="form-control w-50 form-row" value="{{pi.institution}}" required>
                        <input type="text" name="fullname" id="fullname" placeholder="Full Name" class="form-control w-50 form-row mt-1" value="{{pi.fullname}}" required>
                        <input type="text" name="email" id="contact" placeholder="Personal Email " class="form-control w-50 form-row mt-1" value="{{pi.email}}" required>
                        <input type="number" name="contact" id="contact" placeholder="Contact " class="form-control w-50 form-row mt-1"  value="{{pi.contact}}" required>
                        <input type="text" name="position" id="position" placeholder="Position " class="form-control w-50 form-row mt-1" value="{{pi.position}}" required>
                        <input class="form-control w-50 form-row mt-1" type="file" id="formFile" name="upload" value="{{pi.uploaddata.url}}" required>
                        <img src={{pi.uploaddata.url}} class="img-fluid img-thumbnail" alt="image" style="width:100px; height: 60px"><br>
                        <input class="form-check-input" type="checkbox" value="" id="invalidCheck" name='checkbox' required>
                        <label class="form-check-label" for="invalidCheck">
                            Agree to terms and conditions
                          </label>
                          <br>
                        <input class="bg-success text-white mt-1" style="margin-top: 0px;" type="submit" />

views.py

def EuAdmin(request, pk):
        pi = EmailDb.objects.get(id=pk)
        if request.method == 'POST':
            institution = request.POST.get('institution', '')
            fullname = request.POST.get('fullname', '')
            email = request.POST.get('email', '')
            contact = request.POST.get('contact', '')
            position = request.POST.get('position', '')
            uploadd = request.FILES.get('upload', '')
            pi.institution = institution
            pi.fullname = fullname
            pi.email = email
            pi.contact = contact
            pi.position = position
            pi.uploaddata = uploadd
            pi.save()
            return HttpResponseRedirect("/eadmin")
        return render(request, 'NEC/eupdate.html', {'pi': pi})

Вы должны проверить, был ли файл обновлен или нет, затем сделать соответствующие действия, если файл обновлен, то сохранить его, иначе старый файл должен быть там.

Попробуйте этот вид:

def EuAdmin(request, pk):
    pi = EmailDb.objects.get(id=pk)
    if request.method == 'POST':
        institution = request.POST.get('institution', '')
        fullname = request.POST.get('fullname', '')
        email = request.POST.get('email', '')
        contact = request.POST.get('contact', '')
        position = request.POST.get('position', '')
        uploadd = request.FILES.get('upload', '')
        pi.institution = institution
        pi.fullname = fullname
        pi.email = email
        pi.contact = contact
        pi.position = position
        if uploadd:
            pi.uploaddata = uploadd
        pi.save()
        return HttpResponseRedirect("/eadmin")
    return render(request, 'NEC/eupdate.html', {'pi': pi})
Вернуться на верх