0

我想将单个对象返回到模板上下文,以便我可以多次重复使用该对象,而不必每次都进行查询。

这是我到目前为止所拥有的:

    def get_context_data(self, **kwargs):
        context = super(MessageCreate, self).get_context_data(**kwargs)
        cohort = Cohort.objects.filter(members=self.request.user)
        context['cohort_member'] = cohort.members.exclude(members=self.request.user)
        return context

我得到的错误是:

'QuerySet' object has no attribute 'members'

所以,我有点困惑。因为我认为属性成员是队列的一部分。如果我在模板中迭代同期群,我可以接触到用户。

所以,我想要那个单一的用户,而不是整个集合。

欢迎任何建议。

谢谢!

4

1 回答 1

0

您的变量cohort是查询集,而不是模型实例。要获得一个实际的模型实例,您必须评估查询集,您可以通过多种方式执行此操作 - 正如您在模板中提到的那样,对其进行迭代是一种方法。当然,一个查询集可以包含多个或少于一个实例。

也就是说,我对您试图排除和包含的内容感到有些困惑。应该是cohort_member请求用户以外的群组的一组成员?如果是这样,有几种方法可以做到这一点,具体取决于您是否需要除模板中的该组成员之外的任何其他内容以及用户与同类群组的关系是多对多还是多对一。并且,如果是多对多,您是否希望该用户所属的所有同类群组的所有其他用户,或者您是否希望将他们单独分组。

于 2013-06-07T21:41:26.607 回答