python - 在 get_data(request) 中渲染多个模板
问题描述
如何将数据呈现到两个模板中get_data()
?
一般来说,
def get_data(request):
data = Model.objects.order_by('id')
return render(request, 'template.html', {'data':data})
.
{{for x in data}}
{{x.model_field}}
{{end for}}
用于将存储的数据从 db 渲染到 html 文件中,但是如何将相同的数据渲染到'template.html'
和'template_1.html'
. 没有办法将模板作为列表传递给我从django_docs读取的知识。有什么替代方法吗?
解决方案
#views.py
from django.views.generic import DetailView
from my_app.models import MyModel, MyModel2
class MyView(DetailView):
context_object_name = 'my_object'
template_name = 'templates/model.html'
def get_object(self, queryset=None):
pk = self.kwargs['pk']
return MyModel.objects.get(pk=pk)
class MyView2(DetailView):
context_object_name = 'my_object'
template_name = 'templates/model2.html'
def get_object(self, queryset=None):
pk = self.kwargs['pk']
return MyModel2.objects.get(pk=pk)
# urls.py
from django.urls import re_path
from my_app.views import MyView, MyView2
urlpatterns = [
re_path(r'^model/(?P<pk>[0-9]+)$', MyView.as_view()),
re_path(r'^model2/(?P<pk>[0-9]+)$', MyView2.as_view()),
]
这是一个非常基本的示例,将使用具有 pk 15 的对象进行/model/15/
渲染。templates/model/
MyModel
在模板中你可以{{ my_object }}
用来获取对象
有什么不明白的,欢迎评论。
推荐阅读
- ios - 从 Main.storyboard 拖放到 ViewController.swift 时,我无法更改连接和对象
- centos - 如何从源代码创建 postfix rpm
- php - 在文本文件中搜索值并返回其后的所有内容
- php - 向 PHP/MySQL 表单添加复选框选项
- android - Android bottomviewnavigation 将 png 图标添加到新项目
- html - XSL - HTML 表格页脚在位置动态显示(根据表格中的行数更改)
- python - Mac OS High Sierra 上 Miniconda 的 CERN ROOT:libpng 冲突
- mysql - 对现有架构执行迁移时出现 Django 迁移错误
- java - 恢复活动
- spring - Spring 5+ Hibernate 5 + Atomikos 4 + Tomcat 的集成 无法定位当前 JTA 事务