Проверка входа администратора в систему - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь проверить, является ли текущий зарегистрированный пользователь администратором, а затем разрешить им доступ к странице администратора, иначе вернитесь на домашнюю страницу. .py

class users(models.Model):
    _id = models.AutoField
    name = models.CharField(max_length = 100)
    username = models.CharField(max_length = 100)
    email = models.EmailField(max_length=254)
    hpassword = models.CharField(max_length = 255)
    category = models.CharField(max_length=50, default= "teacher")

Я пробовал использовать другой метод запроса. Но в конечном итоге я получаю страницу с ошибкой, так как «запрос соответствия пользователя не существует». Также он не проверяет, вошел ли пользователь в систему или нет. Даже если пользователь не вошел в систему, он возвращается на страницу администратора.

Ответы [ 2 ]

1 голос
/ 14 июля 2020

вы искали про декораторы? посмотрите Проверьте логин администратора в моем django приложении

и проверьте доступ к панели управления Django декоратор входа вы можете перенаправить пользователя обратно на страницу входа, если нет вошел в систему.

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
  ...

для 2-го «запрос соответствия пользователя не существует». проверьте, есть ли у вас таблица базы данных. убедитесь, что вы выполнили миграцию и используйте Try Exception

try:     
    user = users.objects.get(category = 'admin')     
    if user:         
        return render(request, 'main/admin.html')    
except Exception as e:     
       return render(request, 'main/home.html') 
0 голосов
/ 14 июля 2020

Класс пользователя по умолчанию в django имеет логическое поле с именем 'is_superuser' , которое определяет, является ли пользователь admin или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...