Django,从不同的应用程序查看模型

时间:2016-10-15 09:02:08

标签: django import views models

我是python编程和django的新手,我得到了基础知识。我用两个应用程序创建了一个项目,包括家庭和视频。在我的视频models.py中,我有以下数据:

from video.models import Video

def display_video(request):
    video_list = Video.objects.all()
    context = {'video_list': video_list}
    return render(request, 'home/home.html', context)

我想在views.py中的家庭应用程序中执行此操作,例如在html页面中显示数据,目前设置如下:

{% if video_list %}
 {% for video in video_list %}
  <p>{{ video.name }}</p>
  <p>{{ video.description }}</p>
 {% endfor %}
{% else %}
 <p>no videos to display</p>
{% endif %}

在我的home.html中

socket.io.js

我的home.html始终返回&#34;没有要显示的视频&#34;

但是当我在我的视频应用中查询Video.objects.all()时,它会找到2个对象。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

在设置中,请检查以下内容。

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

答案 1 :(得分:0)

我决定删除该项目并开始全新,但这次我使用了类视图而不是函数视图。我不确定为什么它没有运行但是使用类视图它就像一个魅力。所以类视图中的等价物尽可能简单。

 from video.models import Video

 class IndexView(generic.ListView):
   template_name = 'home/index.html'
   context_object_name = 'top_three'

   def get_queryset(self):
    return Video.objects.all()[:3]