Django,查看来自不同应用程序的模型
Django, viewing models from different app
我是 python 编程和 django 的超级新手,我掌握了基础知识。我创建了一个包含两个应用程序的项目,家庭和视频。在我的视频 models.py 中,我有以下数据:
class Video(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(blank=True, null=True)
我想在 views.py 的家庭应用程序中对此做一些事情,例如在 html 页面中显示数据,目前它的设置如下:
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)
在我的 home.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总是returns"no videos to display"
但是当我在我的视频应用程序中查询 Video.objects.all() 时,它找到了 2 个对象。感谢您的帮助。
在设置中,检查是否存在以下内容。
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',
],
},
},
]
我决定删除项目并重新开始,但这次我使用 class 视图而不是函数视图。我不确定为什么它没有 运行 但使用 class 视图它就像一个魅力。所以在 class 视图中尽可能简单的等价物是。
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]
我是 python 编程和 django 的超级新手,我掌握了基础知识。我创建了一个包含两个应用程序的项目,家庭和视频。在我的视频 models.py 中,我有以下数据:
class Video(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(blank=True, null=True)
我想在 views.py 的家庭应用程序中对此做一些事情,例如在 html 页面中显示数据,目前它的设置如下:
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)
在我的 home.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总是returns"no videos to display"
但是当我在我的视频应用程序中查询 Video.objects.all() 时,它找到了 2 个对象。感谢您的帮助。
在设置中,检查是否存在以下内容。
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',
],
},
},
]
我决定删除项目并重新开始,但这次我使用 class 视图而不是函数视图。我不确定为什么它没有 运行 但使用 class 视图它就像一个魅力。所以在 class 视图中尽可能简单的等价物是。
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]