Как разделить пользователей и администраторов на одной панели в приложении django? - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь django приложение, которое имеет логин и панель инструментов. На панели инструментов я показываю детали, которые были выбраны пользователем во время регистрации, которая работает идеально, но здесь проблема также может возникнуть у администратора. войдите в личный кабинет пользователя, он показывает все детали как пустые, но я хочу, чтобы фраза отсутствовала. Это мои views.py:

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = auth.authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                auth.login(request, user)
                return HttpResponseRedirect(reverse('modsy:dashboard'))

        else:
            messages.error(request,'Invalid Credentials')
            # return render(request,'dashboard.html') ## removed 1
    # else: ## removed 2
    return render(request, 'login.html')

# This is a dashboard view
def dashboard(request):
    return render(request, 'index1.html')

# This is a account view
def account(request):
    return render(request, 'dashboard.html',);

# This is a logout view
def logout(request):
    messages.error(request,'You are now logged out')
    return render(request, 'login.html',);

панель инструментов. html:

<div class="container20 mt-4">
    <center>
      <h3 class="display-5 mt-2"><b>Account Details</b></h3>
    </center>
    <!--Your Account Details-->
    <h3 class="display-5 mt-5 ml-3"><u>Your Account Details</u></h3>
    <hr class="new1">
    <p class="p3 ml-4 mt-4"><b>Username: </b>{{request.user.project.user}}</p>
    <p class="p3 ml-4 mt-4"><b>Email: </b>{{user.email}}</p>
    <a href="account/edit/" class="button ml-2">Edit Profile</a>
    <a href="/" class="button ml-2">Messages</a>

    <hr class="new2">

    <!--Your Project-->
    <h3 class="display-5 mt-4 ml-3"><u>Your Project</u></h3>
    <hr class="new1">
    <!--Room-->
    <p class="p3 ml-4 mt-4"><b><u>ROOM</u>:<br></b>{{request.user.project.room}}</p>
    <hr class="new2">

    <!--Goals-->
    <p class="p4 ml-4"><b><u>GOALS</u>:</b>
      {% for goal in request.user.project.goal.all %}
      <br>{{goal}}
      {% if not forloop.last %}, {% endif %}
      {% endfor %}
    </p>

    <hr class="new2">
    <!--Furniture-->
    <p class="p5 ml-4"><b><u>FURNITURE</u>:</b><br>{{request.user.project.furniture}}</p>
    <hr class="new2">

    <!--Designs-->
    <p class="p4 ml-4"><b><u>DESIGNS</u>:</b>
      {% for design in request.user.project.design.all %}
      <br>{{design}}
      {% if not forloop.last %}, {% endif %}
      {% endfor %}
    </p>
    <hr class="new1">
  </div>

Если администратор входит в панель управления, он должен отображаться как сообщение об отсутствии проектов. Как мне этого добиться? Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 28 января 2020

В своем шаблоне вы можете проверить, является ли пользователь суперпользователем или нет.

{% if request.user.is_superuser %}
    No Projects
{% else %}
    projects
{% endif %}
...