我正在遵循readthedocs(http://django-permission.readthedocs.org/en/latest/)中的代码。困难从文档的应用权限逻辑部分开始。所有的作品很好,因为我剪切和粘贴
art1 = Article.objects.create(
title="Article 1",
body="foobar hogehoge",
author=user1
)
生成以下回溯
Traceback (most recent call last):
File "<console>", line 4, in <module>
File "C:\Django\test_permissions\lib\site-packages\django\db\models\manager.py", line 157, in create
return self.get_queryset().create(**kwargs)
File "C:\Django\test_permissions\lib\site-packages\django\db\models\query.py", line 320, in create
obj = self.model(**kwargs)
File "C:\Django\test_permissions\lib\site-packages\django\db\models\base.py", line 417, in __init__
raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
TypeError: 'author' is an invalid keyword argument for this function
如果更改为
art1 = Project.objects.create(
rest of code is okay
工作正常。所以我猜是个错误。也许,我不确定。你知道吗
不管怎样,我还是要把它剪切粘贴到贝壳里,直到我得到它
>>> assert user1.has_perm('permission.change_article') == False
Traceback (most recent call last):
File "<console>", line 1, in <module>
AssertionError
所以我试着
>>> assert user1.has_perm('permission.change_article') == True
很好用。我不得不说,在这个阶段,我不知道发生了什么。你知道吗
所以下一行是
assert user1.has_perm('permission.change_article', art1) == True
现在是回溯
>>> assert user1.has_perm('permission.change_article', art1) == True
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "c:\django\test_permissions\lib\site-packages\django\contrib\auth\models.py", line 336, in has_perm return _user_has_perm(self, perm, obj)
File "c:\django\test_permissions\lib\site-packages\django\contrib\auth\models.py", line 273, in _user_has_perm if backend.has_perm(user, perm, obj):
File "c:\django\test_permissions\lib\site-packages\permission\backends.py", line 71, in has_perm if handler.has_perm(user_obj, perm, obj=obj):
File "c:\django\test_permissions\lib\site-packages\permission\handlers.py", line 237, in has_perm if permission_logic.has_perm(user_obj, perm, obj):
File "c:\django\test_permissions\lib\site-packages\permission\logics\author.py", line 122, in has_perm author = field_lookup(obj, self.field_name)
File "c:\django\test_permissions\lib\site-packages\permission\utils\field_lookup.py", line 42, in field_lookup return field_lookup(field_lookup(obj, field_path[0]), field_path[1])
File "c:\django\test_permissions\lib\site-packages\permission\utils\field_lookup.py", line 41, in field_lookup return getattr(obj, field_path[0])
AttributeError: 'Project' object has no attribute 'project'
我做错什么了吗? 我不知道该怎么办。我远在主教岩灯塔之外;—)
我需要获得为我的项目工作的权限。这是应用程序吗?你知道吗
顺便说一句
(test_permissions) c:\django\test_permissions\test_permissions>pip freeze
Django==1.6.5
Pillow==2.2.2
South==0.8.4
app-version==0.1.2
django-appconf==0.6
django-crispy-forms==1.4.0
django-permission==0.8.0
six==1.7.0
tolerance==0.1.1
在Win7上使用virtualenv
汤米。你知道吗
我是这个图书馆的作者。你知道吗
我真的很抱歉,但示例代码是错误的引导。如果按照注释部分中的“来自django permission version 0.8.0”进行操作,则可以使用field\uu name属性指定相关对象,如django queryset lookup。请看下面的工作示例:“,
Article
没有author
,这就是django责怪代码的原因。应该是这样的那么这个例子应该有用。 我会尽快更新文件的。你知道吗
相关问题 更多 >
编程相关推荐