Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Django:如何仅向特定用户显示某些对象_Html_Django_Django Models_Django Templates_Django Views - Fatal编程技术网

Html Django:如何仅向特定用户显示某些对象

Html Django:如何仅向特定用户显示某些对象,html,django,django-models,django-templates,django-views,Html,Django,Django Models,Django Templates,Django Views,我是django的新手,在一个项目中,管理员必须将团队分配给经理,当管理员将团队分配给经理时,它将仅显示在经理的仪表板上。我不知道如何才能做到这一点。如果有人能帮忙,请帮帮我 这是我的.html文件,管理员可以从中将团队分配给经理 <th>S No.</th> <th>COMPANY NAME</th> <th>TEAM MEMBER</th> <th>Assign TEAM</th> </

我是django的新手,在一个项目中,管理员必须将团队分配给经理,当管理员将团队分配给经理时,它将仅显示在经理的仪表板上。我不知道如何才能做到这一点。如果有人能帮忙,请帮帮我

这是我的.html文件,管理员可以从中将团队分配给经理

<th>S No.</th>
<th>COMPANY NAME</th>
<th>TEAM MEMBER</th>
  <th>Assign TEAM</th>
</tr>
</thead>
 <tbody>
 {%for team in object%}
   <tr>
     <form id="form_id" method="POST" action = "{% url 'accept' %}">
       {% csrf_token %}
      <th scope="row"> {{ forloop.counter }}</th>
       <td>{{team.company_name}}</td>
        <td>{{team.team_member}}</td>
          <td>
             <select name="manager_{{manager.id}}">
              {% for manager in managers %}
                <option value ="{{manager.id}}">{{manager.name}}</option>
              {% endfor %}                                   
               </select>
           </td>
             <td>
                 <input class="btn btn-raised btn-primary btn-round waves-effect" type="submit" value="Assign">
                            </td>
            </tr>
             {% endfor %}
这是适用于manager的my views.py文件,管理员从中接受请求:

def accept(request):
obj= Create_Team.objects.filter(status='Accept') 
managers = manager.objects.all()
if request.method == 'POST':
   createteam = Create_Team()
   createteam_id = int(request.POST.get('team', 1))
   manager_id = int(request.POST.get('manager', 1))
   createteam = Create_Team.objects.get(pk=createteam_id)
   createteam.manager = manager.objects.get(pk=manager_id)
   createteam.save()

  return render(request, "admin/accept.html", {"object": obj,  "managers": managers})

def superior(request):
return render(request, 'manager/index-3.html')
这里是我的视图,我检查用户是管理员还是用户或经理

def login(request):
if request.method =='POST':
    # print(request.POST)
    username = request.POST['username']
    password = request.POST['password']

    user = auth.authenticate(username=username, password=password)

    if user is not None:
        auth.login(request, user)
        print (user.has_perm('app.edit_task'))
        # return redirect('index')

        if user.is_superuser:
            return redirect('master')

        # elif user.has_perm('app.edit_task'):
        #     return redirect('manager')
        elif user.is_staff:
            return redirect('manager')
        else:
            return redirect('index')

    else:
        messages.error(request, 'Invalid Credentials')
        return redirect('login')    
else: 
    return render(request, 'vadash/sign-in.html')

我想,每当管理员将点击分配按钮,然后该团队将显示给该经理。请帮助我。但此代码不会更新数据库。

在Manager登录后,请确保检索已登录的Manager的数据。并在Manager登录后将该数据传递到视图

,确保检索已登录的Manager的数据。并将该数据传递到视图“创建自定义用户模型”,以检查登录的用户是经理、管理员还是成员

您可以通过不同的方法创建自定义用户。请检查链接:

您可能会给出类似is\U管理器、is\U成员等布尔字段

定义自定义用户模型后,您可以使用

request.user.is_manager == True

创建自定义用户模型以检查登录的用户是经理、管理员还是成员

您可以通过不同的方法创建自定义用户。请检查链接:

您可能会给出类似is\U管理器、is\U成员等布尔字段

定义自定义用户模型后,您可以使用

request.user.is_manager == True

我希望当管理员将团队分配给经理时,该团队将仅显示在经理的仪表板上,并且经理的名称应显示在后端。不要像创建团队那样命名您的模型。这是一个表名,请将其保留为团队。。若可以为经理分配多个团队,那个么团队应该是经理模型中的多对多字段。若为单个,那个么将其设为外键。只要管理员通过更新模型来分配team,就可以设置其值。要在manager仪表板中显示团队,您可以使用manager.team调用它。我现在添加了一个外键。但是我如何才能“你可以在管理员通过更新模型分配团队时设置团队的值。要在管理器仪表板中显示团队,你可以使用manager.team调用它”这样做。在你使用manager.objects.get()获得管理器模型中的特定条目后,你可以设置外键,如manager.team=要分配的团队。确保在团队字段中允许空值。并调用manager.save()。或者您可以使用.update()方法以及如果管理者是用户类型,则应创建自定义用户模型或在管理者模型中向用户添加外键。我希望,当管理员将团队分配给管理者时,该团队将仅显示在该管理者的仪表板上,并且管理者的名称应显示在后端。不要像创建团队那样命名您的模型。这是一个表名,请将其保留为团队。。若可以为经理分配多个团队,那个么团队应该是经理模型中的多对多字段。若为单个,那个么将其设为外键。只要管理员通过更新模型来分配team,就可以设置其值。要在manager仪表板中显示团队,您可以使用manager.team调用它。我现在添加了一个外键。但是我如何才能“你可以在管理员通过更新模型分配团队时设置团队的值。要在管理器仪表板中显示团队,你可以使用manager.team调用它”这样做。在你使用manager.objects.get()获得管理器模型中的特定条目后,你可以设置外键,如manager.team=要分配的团队。确保在团队字段中允许空值。并调用manager.save()。或者您可以使用.update()方法以及如果经理是用户类型,则应创建自定义用户模型或在经理模型内向用户添加外键经理登录后我需要分配给该经理的团队仅显示给他经理登录后我需要分配给该经理的团队仅显示给他