изображения не загружаются на веб-страницу из базы данных с использованием django - PullRequest
0 голосов
/ 20 апреля 2020

Я сделал библиотечное веб-приложение. Я пытаюсь выполнить поиск по книгам из базы данных. Вся другая информация, такая как название, отображается за исключением изображения. Ниже приведен скриншот введите описание изображения здесь

ниже мой поиск . html


    {% extends 'bookslib/base.html' %}
    {% block body_block %}
    {% load static %}
    {% if books %}
    {% for book in books %}
           <div class="books">
        <div class="book">
            <img src="{{ book.imagefile.url }}" height="250px" width="200px">
        <p>{{ book.title }}</p>
        </div>
    </div>    

{% endfor %}
{% endif %}
{% endblock %}

ниже приведен вид поиска:

enter code here
 def search(request):

    if request.method == "POST":
        query = request.POST.get('query')
        if query:
            books = Book.objects.filter(Q(title__icontains=query) | Q(author__name__icontains=query))
            if books:
                return render(request, 'bookslib/search.html', {'books':books})
        else:
            return redirect('bookslib/home.html')
    return redirect('bookslib/home.html')   

Я добавил этот путь в urls.py

enter code here
* 1014 моего основного проекта. *

мои изображения находятся в каталоге media / images / media в каталоге, где хранятся мой проект и приложение. пожалуйста, помогите мне. если вам нужна другая информация, пожалуйста, дайте мне знать. заранее спасибо.

1 Ответ

1 голос
/ 20 апреля 2020

Попробуйте поместить ваши файлы в папку stati c и установите это значение в файле setting.py.

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates')
STATIC_DIR = os.path.join(BASE_DIR,'static')
MEDIA_DIR = os.path.join(BASE_DIR,'media')

if DEBUG == False:
    STATIC_URL = '/static/'
    #STATICFILES_DIRS = [STATIC_DIR,"/var/www/static"]
    STATIC_ROOT = os.path.join(BASE_DIR,"static")
    MEDIA_ROOT = MEDIA_DIR
    MEDIA_URL = '/media/'

else:
    MEDIA_URL = '/media/'
    STATIC_URL = '/static/'

Затем запустите python manage.py collectstatic Все ваши файлы stati c будут перемещен в папку / stati c, как определено в settings.py. Для ссылки на ваше изображение вы будете использовать путь к изображению в папке stati c: <img src="/static/name_of_your_image" height="250px" width="200px">

...