我正在尝试使用从数据库中恢复的选项来提供选择标签。 问题是,我完全是Django的初学者,甚至都不知道如何搜索。
我使用的是通用视图,据我所知,模板由绑定到context_object的模型提供,默认命名为object_list,但是您可以在context_object_name变量中进行更改。 但是我的companies_object无法提供模板。
<tbody>
{% for project in projects %}
<tr>
<td>
{{ project.title }}
</td>
[...]
<select>
{% for company in companies %}
<option value="{{company.id}}">{{company.name}}</option>
{% endfor %}
</select>
class ProjectsView(LoginRequiredMixin, ListView):
model = Project
context_object_name = 'projects'
template_name = 'projects/projects.html'
def select_company(self):
companies = Company.objects.all()
return 1 #return selected company
def get_projects(self):
seek_in_database()
return projects
我希望知道如何在同一模板中显示两个不同的对象,即已经工作的项目和公司对象。
我怀疑model = Projects
和context_object_name
的模版是如何获取项目数据的。
我知道这是入门级的,并且我不希望有人写出完整的指南,我对某些主题的指示感到非常满意。
答案 0 :(得分:2)
这是我的示例:
class CompanyListView(ListView):
model = Company
context_object_name = 'companies'
template_name = 'core/company/listCompanies.html'
queryset = Company.objects.get_main_companies()
def get_context_data(self, **kwargs):
context = super(CompanyListView, self).get_context_data(**kwargs)
context.update({
'company_abbr': self.request.session.get('company_abbr'),
'page_title': 'Manage Companies',
})
return context
因此,在get_context_data中,您可以根据需要添加任意数量的数据。