Изображение не загружается. Я хочу загрузить изображение и сохранить его в базе данных. Я предоставил носитель root и URL-адрес носителя. - PullRequest
0 голосов
/ 24 февраля 2020

applyonline. html (я дал поля для файлов для адхароскопии и idcopy)

<body ng-app="">
{% extends "pmmvyapp/base.html" %}
{% load crispy_forms_tags %}
{% load static %}
{% block content%}
<div class="col-md-8">
  <form method="post" action="/personal_detail/">
  {% csrf_token %}
  <div class="form-group">
      <div class=" mb-4">
      <h6><u>(*Mandatory Fields)Please Fill up the details below </u></h6>
    </div>
    <legend class="border-bottom mb-4" ,align="center">1.Beneficiary Details</legend>
    <label for="formGropuNameInput">Does Beneficiary have an Adhaar Card?*</label>
    <input type="radio" name="showHideExample" ng-model="showHideTest" value="true">Yes
    <input type="radio" name="showHideExample" ng-model="showHideTest" value="false">No
   <!--logic for yes-->
    <div ng-if="showHideTest=='true'">
      <div class="form-group">
        <label for="formGropuNameInput">Name of Beneficiary(as in Aadhar Card)*</label>
        <input name="beneficiary_adhaar_name" class="form-control" id="formGroupNameInput" placeholder="Enter name of Beneficiary as in Aadhar Card" required>
      </div>       
      <div class="custom-file">
        <input type="file" class="custom-file-input" id="customFile" name="adhaaarcopy">
        <label class="custom-file-label" for="customFile">Choose file</label>
      </div>
    </div>
    <!--logic for no-->
    <div ng-if="showHideTest=='false'">     
      <div class="form-group">
              <div class="form-group">
          <label for="adhaar_eid">Aadhaar Enrollment ID(EID):</label>
          <input name="adhaar_eid" id="identityno"  class="form-control" required>
        </div>

        <div class="form-group">        
          <label for="formGropuNameInput">Name of Beneficiary(as in Identity Card)* </label>
          <input name="beneficiary_id_name" class="form-control" id="formGroupNameInput" placeholder="Enter your name" required>
        </div>
        <div class="form-group">
          <label for="idno">Identity Number(Enclose Copy of Identity Card)*:</label>

          <input name="idno" id="identityno"  class="form-control" required>
          </div>

       <div class="custom-file">

            <input type="file" class="custom-file-input" name="idcopy" id="customFile">
            <label class="custom-file-label" for="customFile">Choose file</label>
          </div>
    </div>
    </div>
    <button type="submit" class="btn btn-primary" style="margin-bottom:10px ">Submit</button>
  </form>
</div>   
{% endblock %}
</body>

это мои views.py я использовал POST.get

@login_required
def personal_detail(request):
   # ShowHideExample = request.POST.get('showHideExample',False)
    beneficiary_adhaar_name=request.POST.get('beneficiary_adhaar_name')
    adhaarno=request.POST.get('adhaarno')
    adhaarcopy=request.POST.get('adhaarcopy')

    idcard=request.POST.get('idcard')
    adhaar_eid=request.POST.get('adhaar_eid')   
    beneficiary_id_name=request.POST.get('beneficiary_id_name')
    idno=request.POST.get('idno')
    idcopy=request.POST.get('idcopy')
    apply_online = Personal_Detail(beneficiary_adhaar_name=beneficiary_adhaar_name,adhaarno=adhaarno,adhaarcopy=adhaarcopy,
    idcard=idcard,adhaar_eid=adhaar_eid,beneficiary_id_name=beneficiary_id_name,idno=idno,idcopy=idcopy)
    apply_online.save()
    return render(request,'users/applyonline.html')

это мой models.py, где я создал FileField для

class Personal_Detail(models.Model):
    beneficiary_adhaar_name=models.TextField(blank=True, null=True)
    adhaarno=models.IntegerField(blank=True, null=True)
    adhaarcopy = models.FileField(upload_to='adhaar/')


    idcard=models.TextField(blank=True, null=True)
    adhaar_eid=models.IntegerField(blank=True,null=True)    
    beneficiary_id_name=models.TextField(blank=True, null=True)
    idno=models.IntegerField(blank=True, null=True)
    idcopy=models.FileField(upload_to='identitycard/')

    def __str__(self):
        return self.beneficiary_adhaar_name or self.beneficiary_id_name

settings.py. Я дал медиа root и предоставил медиа-URL

STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL ='/media/'
CRISPY_TEMPLATE_PACK='bootstrap4'

Как я хочу чтобы узнать, как я могу загрузить изображения, например, какими должны быть мои следующие шаги.

1 Ответ

0 голосов
/ 24 февраля 2020

Вы должны получить файл после отправки формы, как показано ниже ...

idcopy = request.FILES['idcopy']
adhaaarcopy = request.FILES['adhaaarcopy']

insted of ...

idcopy=request.POST.get('idcopy')
adhaaarcopy=request.POST.get('adhaaarcopy')

И так далее для других полей ...

После этого вы можете сохранить и получить его в соответствующем месте на носителе.

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