【发布时间】:2018-02-12 21:37:10
【问题描述】:
我正在处理与特定模型关联的 Django 模板。在此模板的视图中,我正在尝试根据我将在模板中传递的参数访问来自不同模型(包含科学术语的术语)的记录。
我尝试使用get_context_data 来查询数据库中的随机术语,然后使用自定义过滤器标记将术语替换为模板中我想要的术语。 Django 更聪明,但不会让我这样做。
目前,我正在尝试在 views.py 中定义上下文
class ArticlesView(DetailView):
model = models.Articles
template_name = 'web/articles-details.html'
context_object_name = 'Articles_details'
def get_context_data(self, *args, **kwargs):
ctx = super(ArticlesView, self).get_context_data(*args, **kwargs)
ctx['featured'] = Articles.objects.filter(featured=True)
ctx['term','arg'] = Articles.objects.filter('slug'=='arg')
return ctx
在上面的代码中,“特色”上下文工作正常,但不是“术语”上下文。这显然是错误的;我知道......但我无法弄清楚正确的语法是什么,以及如何从模板中提供参数。 (在这个例子中,我试图只打印出“科学术语”的片段)。
有什么想法吗?
我知道我可以在我的模型中设置ForeignKey 来连接它们。问题是我在任何给定页面上至少有 4-5 个“科学术语”,因此,我必须为每个页面添加至少 5 个相关术语,然后以特定方式添加它们。 . 很多重复和混乱。
提前感谢您的帮助。
【问题讨论】:
标签: django django-models django-templates django-views