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

时间:2018-03-05 17:23:55

标签: django django-templates

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

博客应用模板文件夹包含 index.html

以下是工作

中的 view.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 中添加一个打印声明 它没有在控制台中打印。 显然 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'))


]

2 个答案:

答案 0 :(得分:1)

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


修改

放完你的urls.py之后


您必须创建不同的应用程序来处理不同的功能,每个功能都包含urls.py文件。您无法将网址指向主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'),
]

答案 1 :(得分:0)

你没有从其他博客应用程序中导入模型 所以在意见中,提出类似的东西 来自blog.models导入博客 然后模板文件夹路径应该是 blog \ templates \ blog为博客应用而非模板