无法访问wagtail管理中的用户页面
我在使用wagtail的管理界面时遇到了问题。在我的urls.py文件里,我是这样设置的:
url(r'^cms-admin/', include(wagtailadmin_urls)),
url(r'^cms-search/', include(wagtailsearch_frontend_urls)),
url(r'^cms-documents/', include(wagtaildocs_urls)),
url(r'', include(wagtail_urls)),
除了指向用户的链接(/cms-admin/users/)之外,其他所有链接都正常。当我访问/cms-admin/users/时,出现了以下错误:
NoReverseMatch at /cms-admin/users/
Reverse for 'wagtailusers_edit' with arguments '(-1L,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['cms-admin/users/(\\d+)/$']
往下看,我发现Django在尝试渲染一个模板时,遇到了这个行的问题:
<a href="{% url 'wagtailusers_edit' user.id %}">{{ user.get_full_name|default:user.username }}</a>
有没有人知道我哪里做错了?
谢谢,
Magda
编辑
好的,我自己找到了问题所在——问题是我有一个ID为-1的匿名用户,而wagtail使用了这样的模式:['cms-admin/users/(\\d+)/$']
。不过我还是不知道该怎么解决这个问题。
1 个回答
0
Django有一个叫做AnonymousUser
的类,它看起来像一个模型对象,但并不存储在数据库里。我猜你不是在用这个。
你想允许编辑这个匿名用户吗?
如果想的话,你可以修改现有的urlpatterns
,找到合适的RegexURLPattern
对象,然后用一个相同但正则表达式不同的对象替换它。
如果不想的话,你可以考虑限制视图接收到的数据集,把匿名用户过滤掉。