Understanding the permissions system of Django 1.7

3

I have an app called forms_and_models that I use for study. In the Django 1.7 documentation says:

  

Assuming you have an application whose app_label is foo and a template called Bar , to test basic permissions, you should use:

  • to add: user.has_perm('foo.add_bar')
  •   
  • to change: user.has_perm('foo.change_bar')
  •   
  • to delete: user.has_perm('foo.delete_bar')
  •   

Through the admin, I've added the permission: forms_and_models | author | Can add author to my user. Following the documentation template, I deduced that to test if a user has permission to add an author, I could run the following code:

"""O usuário abaixo existe e é o que eu configurei a permissão acima""" user = User.objects.get(username='junior') user.has_perm('forms_and_models.add_author')

However, this line of code always returns false. What am I letting go unnoticed about the permissions system?

    
asked by anonymous 01.03.2015 / 14:54

1 answer

1

I discovered what was happening. The problem was just that I was starting the interactive shell via terminal using Python 3, like this: python3 manage.py shell

When I opened using the ./manage.py shell command, which uses the shebang of the manage.py file, everything happened as per the documentation. Permissions are now listed normally. I've never had problems like this using Python 3 to start the shell. Go understand.

Thank you!

    
02.03.2015 / 00:52