如何从另一个应用程序Django加载媒体

时间:2018-09-12 10:09:19

标签: django django-staticfiles django-media

我在 tutorial 项目中有两个应用程序 accounts home 。 用户可以在 home应用中创建帖子,并且我可以在home应用中呈现帖子(即图像和帖子数据)。我要在帐户应用中创建一个搜索页面,未登录的用户可以在其中搜索和查看帖子。

settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'tutorial/media/')

search.html

{% load static %}
 {% if re %}
    {% for q in re %}
    <a href="{% url 'home:Post_detail' pk=q.id %}">{{q.id}}.{{ q.post }}
        <br>
        <img src="{{ q.image.url}}"  width="240" height="auto">
        <p>Posted by {{ q.user.get_full_name }} on {{ q.created }}</p>

    {%endfor%}
    {% endif %}

我在家庭应用帐户应用中都使用了上面的代码。它适用于 home 应用,但不适用于帐户应用 看到查看源页面时,我在帐户应用程序(search.html)中获得了完美的URL,但是图像未正确加载screenshot

项目urls.py

    from django.conf import settings
    from django.conf.urls.static import static
    urlpatterns = [
    path('accounts/', include('accounts.urls' , namespace='accounts') ),
    path('home/', include('home.urls' , namespace='home') ),
    path('admin/', admin.site.urls),
    path('',login_redirect , name = 'login_redirect'),
    ]
    if settings.DEBUG is True:
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

教程项目结构

tutorial
    |_accounts
    |_home
    |_tutorial
       |_media
          |_profile_images
             |_all image files

0 个答案:

没有答案