无法访问wagtail管理中的用户页面

2 投票
1 回答
1119 浏览
提问于 2025-04-18 18:10

我在使用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对象,然后用一个相同但正则表达式不同的对象替换它。

如果不想的话,你可以考虑限制视图接收到的数据集,把匿名用户过滤掉。

撰写回答