繁体   English   中英

如何根据 django-template-language 中的 user_id 过滤组

[英]How can I filter groups based on user_id in django-template-language

如何使用 if else 条件根据 Django 模板语言中的用户过滤组

 <tbody>
      {% for group in groups %}
      <tr>
          <td>{{group.name}}</td>                                       
          <td><input type="checkbox" name="add_group[]" id="group-{{group.id}}" value=" 
          {{group.id}}" 
                                   
           checked   
           ></td>
                                                                       
       </tr>
     {% endfor %}                                 
  </tbody>

在此处输入图像描述

您可以使用相关的 object 参考或在DTL中使用点符号访问User组: User.groups.all

例如,如果您只想checked特定用户所在的组:

网址.py:

urlpatterns = [
    ...
    path('user/<int:id>/', views.user_detail, name='user-detail')
    ...
]

视图.py

from django.shortcuts import get_object_or_404
from django.contrib.auth.models import Group

def user_detail(request, id):
    user = get_object_or_404(User, id=id)
    groups = Group.objects.all()
    context = {
        'user': user,
        'groups': groups
    }
    return render(request, 'user_group.html', context)

用户组.html

{% extends 'base.html' %}

{% block content %}
<h1>Username: {{user.username}}</h1>

<h2>Groups</h2>
<tbody>
    {% for group in groups %}
    <tr>
        <td>{{group.name}}</td>                                   
        <td>
            <input 
                type="checkbox" 
                name="add_group[]" 
                id="group-{{group.id}}" 
                value="{{group.id}}" 
                {% if group in user.groups.all %} checked {% endif %}
            >
        </td>                                                        
     </tr>
   {% endfor %}                                 
</tbody>
{% endblock %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM