【发布时间】:2020-11-23 02:35:13
【问题描述】:
该应用程序旨在为单个用户提供服务。 我试图在 get_context_data 方法中填充多个模型类对象。我的问题是当我在模板中调用上下文变量时,我得到的只是查询集。如果我调用查询集中的特定项目,我看到的只是内存中的一个位置。如果我在模板内的 for 循环中调用上下文变量“数据”,我什么也得不到。根据 django 文档,这个逻辑应该有效。我错过了什么步骤?还是使用基于函数的视图会更好地为我服务?
我的模特
class backend(models.Model):
lang1 = models.CharField(max_length=50)
lang2 = models.CharField(max_length=50)
lang3 = models.CharField(max_length=50)
def __str__(self):
return 'Backend Language'
class frontend(models.Model):
lang1 = models.CharField( max_length=50)
lang2 = models.CharField(max_length=50)
lang3 = models.CharField(max_length=50)
def __str__(self):
return 'Frontend Language'
class datalayer(models.Model):
lang1 = models.CharField( max_length=50)
lang2 = models.CharField(max_length=50)
lang3 = models.CharField(max_length=50)
def __str__(self):
return 'Database Language'
我的看法
from django.shortcuts import render
from django.views.generic import View, TemplateView, ListView
from cbvapp.models import backend, frontend, datalayer
class Index(ListView):
template_name = 'index.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['data'] = [backend.objects.all(),
datalayer.objects.all(),
frontend.objects.all()]
return context
【问题讨论】:
-
您如何在模板中使用
data?
标签: django list django-views django-templates