我正在尝试使用Django Test Client编写一些测试,以检查我对wagtail管理的自定义。我试过了:
self.user = get_user_model().objects.create(
username='addy', is_staff=True
)
self.client.force_login(self.user)
response = self.client.get(f'/admin/pages/{self.thing.id}/edit/')但我最终还是看到了HttpResponseRedirect status_code=302, "text/html; charset=utf-8", url="/admin/login/?next=/admin/pages/6/edit/">
我是否遗漏了一些重要的用户属性,而Wagtail希望在ordet中让他们查看wagtail-admin页面?
发布于 2017-08-01 03:10:07
wagtailadmin.access_admin不使用Wagtail标志来确定对管理员的访问权限-您需要为您的用户分配Wagtail权限。
有关设置具有适当权限的测试用户的示例,请参阅https://github.com/wagtail/wagtail/blob/c6666c6de5e83bf94d18324858c121e6584ba47d/wagtail/wagtailsites/tests.py#L258。
发布于 2017-08-01 23:22:31
以下是最终对我有效的方法:
self.user = get_user_model().objects.create_superuser(
username='addy', email='admin@example.com', password='passwood321'
)仅仅设置is_staff是不够的。感谢上面的@gasman,用户没有is_admin属性。他们有is_superuser,所以这段代码同样有效(而且可能更好,因为它不需要不相关的电子邮件或密码):
self.user = get_user_model().objects.create(username='addy', is_superuser=True)
self.client.force_login(self.user)https://stackoverflow.com/questions/45423410
复制相似问题