Как просматривать изображения, когда путь сохраняется в базе данных, а изображение сохраняется в папке в Django? - PullRequest
0 голосов
/ 28 марта 2019

Я новичок в Джанго.Мне нужна помощь.Я хочу отображать изображения.Здесь я сохранил путь изображения в базу данных и изображения в папку.Пожалуйста, помогите мне отобразить эти изображения.

views.py :

def uploadfile(request):
   print('inside upload logic')
   if request.method == 'POST':
      form = FileUploadForm(request.POST, request.FILES)
      if form.is_valid():
        # ImageUpload(request.FILES['File_Name'])  
         myfile = request.FILES['File_Name']

         fs = FileSystemStorage()
         filename = fs.save(myfile.name, myfile)
         uploaded_file_url = fs.url(filename)
         newdoc = FileUpload(File_Name=myfile.name, File_path=uploaded_file_url,  Description=request.POST['Description'])
         newdoc.save()
         #return HttpResponse("File uploaded successfuly")  
         return render(request, 'Login/fileupload.html')   
   else:
      form = FileUploadForm()
      return render(request, 'Login/fileupload.html', {
      'form': form
   }) 

def dataretrive(request):
   newdoc=FileUpload.objects.all()
   return render(request,'Login/displayimage.html',{'FileUpload':FileUpload})      

МОЯ модель:

 class FileUpload(models.Model):
    File_Name = models.CharField(max_length=255, blank=True)
    File_path = models.FileField(upload_to='')
    Description = models.CharField(max_length=255, blank=True)
    Upload_Date = models.DateTimeField(auto_now_add=True)

1 Ответ

0 голосов
/ 28 марта 2019

Проверьте это

Добавьте это к вашей модели:

 class FileUpload(models.Model):
    File_Name = models.CharField(max_length=255, blank=True)
    File_path = models.FileField(upload_to='')
    Description = models.CharField(max_length=255, blank=True)
    Image = models.ImageField(upload_to=upload_location)
    Upload_Date = models.DateTimeField(auto_now_add=True)

def upload_location(instance, filename):
    filebase, extension = filename.split(".")
    return "%s/%s" % (instance.id, filename)

В вашем файле settings.py обязательно установите MEDIA_URL и MEDIA_ROOT:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

Чтобы получить доступ к MEDIA_URL в шаблоне, вы должны добавить django.template.context_processors.media к вашим context_processeors внутри конфигурации TEMPLATES.

Добавить это в свой шаблон:

{% if instance.image %}
  <img src="{{ instance.image.url }}" class='img-responsive' />
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...