尝试进行身份验证并根据用户类型授予用户一定的权限。但注意到正在发生。
我尝试根据用户类型限制对网站上某些功能的访问。但是当我设置条件时,页面上没有任何反应:
这是我的模型.py
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.urls import reverse
user_type_choice = (('1', 'majstor'),
('2', 'korisnik'))
class CustomKorisnici(AbstractUser):
user_type = models.CharField(max_length=100,blank=True,choices=user_type_choice)
username = models.CharField(max_length=100,unique=True)
last_name = models.CharField(max_length=100)
first_name = models.CharField(max_length=100)
phone_number = models.CharField(max_length=100)
is_superuser = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
email = models.EmailField(max_length=100,unique=True)
在设置中,我设置:AUTH_USER_MODEL。
AUTH_USER_MODEL ='korisnici.CustomKorisnici'
这是我的login.html 页面。这部分工作正常。
{% extends "nav_footer.html" %}
{% load static %}
{% block content %}
<div class="form-group">
<div class="container">
<div class="form">
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button id="btn" class="btn" type="submit">Login</button>
</form>
</div>
</div>
</div>
</div>
{% endblock %}
**在我的 home.html 页面中,我为用户设置了条件,这是一个问题。 **
{% if user.is_authenticated and user.user_type == "korisnik" %}
<div class="col-md-4">
<a class="nav-link" href="{% url 'post_page' %}">All posts</a>
</div>
{% endif %}
首先,我设置了一个条件 if user.is_authenticated 并且工作正常。之后只是为了检查,我添加了一个条件 if user.is_authenticated 和 user.username == 'admin'。当我以管理员身份登录或用户名 == 'John' 的其他条件登录时,它工作正常并且链接可见。
但是当我尝试条件 user.user_type == "korisnik" 时,即使我登录用户 user_type 如何设置为 korisnik,链接也不可见。我不知道我在这里做错了什么。我需要自定义登录功能还是其他功能