我的 Django 应用程序中有一个页面,该页面需要执行以下操作之一,具体取决于登录用户相对于页面上表示的组(不是 Django 用户组;我的应用程序自定义)的状态:
- 如果用户可以加入群组,则显示加入群组的链接。
- 如果用户在群组中,则显示离开群组的链接。
- 如果用户无法加入群组,请不要显示任何一个链接。
一种方法是创建三个模板(一个带有加入链接,一个带有离开链接,一个没有链接)并在视图中选择适当的一个。我觉得拥有三个仅在一行代码中有所不同的模板可能有点矫枉过正,所以我还没有走那条路。
仅使用模板显示条件 1 和 2 的正确内容是不可能的,如果是这样,我认为不建议这样做。用户到组是多对多的关系,确定组成员关系需要将用户传递给组或将组传递给用户。
由于 Django 模板不允许传递函数参数,我试图通过使用get_context_data
.
def get_context_data(self, **kwargs):
context = super(NetworkDetails, self).get_context_data(**kwargs)
user = ???
context['in_group'] = user.in_group(context['group_detail'])
return context
如果我这样做,我怎样才能在该方法中获取当前登录的用户?如果这是不可能的,我还能从哪里获得模板之外的信息?有没有一种可接受的方法来做这样的事情?
谢谢!