从一个django获取数据到另一个django应用程序的模板

问题描述 投票:-1回答:2

有两个Django应用程序。工作和博客

Blog App模板文件夹包含index.html

这是来自work.py的工作

from django.shortcuts import render
from . import models
from work.models import Work
from blog import views

# Create your views here.

def work_(request):
    template_name = "blog/templates/index.html"
    work_list = Work.objects.all
    context={'work_list':work_list}
    return render(request,template_name,context)

我希望它显示在博客应用程序中的index.html中

<div class="work">
            <section id = "work-list">
                <div class="container">
                    <div class = "row">
                        {% for works in work_list %}
                            <div class="col-md-4">
                                <div class="lol">
                                        <img class="img-rounded img-responsive" src = "{{works.image}}" alt="">
                                </div>
                            </div>
                        {%endfor%}
                    </div>
                </div>
            </section>
        </div>

index.html位于博客应用中

这是目录

blog
   template
      index.html
   models.py
   views.py

Work
   views.py
   models.py

enter image description here来自开发人员工具的图片

我试图在views.py中输入一个print语句并且它没有在控制台中打印。显然url.py中有问题

    urlpatterns = [

    url(r'^admin/', admin.site.urls),
    url(r'^$', views.BlogIndex.as_view(), name='home'),
    url(r'^blogposts/$', views.BlogPosts.as_view(), name='blogposts'),
    url(r'^about/$', views.about, name='about'),
    url(r'^contact/$', contact_views.contact, name='contact'),
    url(r'^privacy/$', privacy_views.privacy, name='privacy'),
    url(r'^feed/$', feed.LatestPosts(), name='feed'),
    url(r'^work/$', work_views.work_, name='work'),
    url(r'^(?P<slug>[-\w]+)/$', views.detailview, name='entry_detail'),
    url(r'^ckeditor/', include('ckeditor_uploader.urls'))


]
django django-templates
2个回答
1
投票

你犯了一些我能发现的错误。 它应该是work_list = Work.objects.all(),你最后错过了()。 2.您的模板文件应以这种方式放置:/blog/templates/blog/index.html 3.在html文件中,插入图像src时,你必须编写{{ works.image.url }}来实际显示图像。否则,你什么都看不到。 <img src="{{ works.image.url }}"/>

Edit

你把你的urls.py后: 您必须创建不同的应用程序来处理不同的功能,每个功能都包含一个urls.py文件。您无法将URL指向主urls.py中的特定功能。所以,在主urls.py中执行此操作:

from django.conf.urls import url, include

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')),
]

然后在博客应用程序(或您需要的任何其他应用程序)中创建一个名为urls.py的文件,其中:

from . import views
from django.conf.urls import url, include

urlpatterns = [
url(r'^$', views.BlogIndex.as_view(), name='home'),
url(r'^blogposts/$', views.BlogPosts.as_view(), name='blogposts'),
]

0
投票

你没有从其他博客应用程序中导入模型,所以在视图中,输入类似于blog.models导入的博客然后模板文件夹路径应该是blog \ templates \ blog for blog app not template

© www.soinside.com 2019 - 2024. All rights reserved.