如何将数据呈现到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所知,无法将模板作为列表传递给我。有其他替代方法吗?
答案 0 :(得分:0)
#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()),
]
这是一个非常基本的示例,/model/15/
将templates/model/
与具有pk 15的MyModel
对象一起渲染。
在模板中,您可以使用{{ my_object }}
来获取对象
您不了解的任何内容,随时发表评论。