В Django-проекте и приложении, только что созданном с django-admin startproject
и ./manage.py startapp
, я создал эту модель:
class Book(models.Model):
author = models.CharField(max_length=50)
Затем я запускаю этот код с ./manage.py shell
:
from django.contrib.auth.models import Permission, User
from django.test import TestCase
from myapp.models import Book
myuser = User.objects.create_user(username="myuser")
myuser.user_permissions.add(Permission.objects.get(codename="change_book"))
mybook = Book(author="Joe Author")
mybook.save()
myuser.has_perm("myapp.change_book")) # The result is True
myuser.has_perm("myapp.change_book", mybook)) # The result is False
Почему это?Пользователь имеет разрешение на редактирование mybook
, не так ли?Как has_perm()
должен работать?Это где-то задокументировано?