python - AssertionError: 302 != 200 : 无法检索内容:响应代码为 302(预期为 200)
问题描述
我正在尝试测试管理员并获得AssertionError: 302 != 200 : Couldn't retrieve content: Response code was 302 (expected 200)
即使我在这里检查了解决方案,但我已经做了同样的事情并得到了同样的错误。
我的模型文件、管理文件和测试文件如下。
管理员.py
from django.contrib import admin
# Register your models here.
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from . import models
class UserAdmin(BaseUserAdmin):
ordering = ['id']
list_display = ['email', 'name']
admin.site.register(models.User, UserAdmin)
测试/test_admin.py
from django.test import TestCase, Client
from django.contrib.auth import get_user_model
from django.urls import reverse
class AdminSiteTests(TestCase):
def setUp(self):
self.client = Client()
self.admin_user = get_user_model().objects.create_user(
email = 'admin@admin.com',
password = 'admin'
)
self.client.force_login(self.admin_user)
self.user = get_user_model().objects.create_user(
email = 'test@londondevapp.com',
password = 'Test@123',
name = 'Test 1'
)
def test_user_listed(self):
"""Test that users are listed on user page"""
url = reverse('admin:core_user_changelist')
res = self.client.get(url)
self.assertContains(res, self.user.name)
self.assertContains(res, self.user.email)
解决方案
我用 from create_user
to固定create_superuser
,它的工作!在def setUp()
管理端代码中起作用。
它是superuser
登录的东西,所以不是使用create_user
i put create_superuser
and test 而是OK!
class AdminSiteTests(TestCase):
def setUp(self):
self.client = Client()
self.admin_user = get_user_model().objects.create_superuser( <-- #Here
email = 'admin@admin.com',
password = 'admin'
)
self.client.force_login(self.admin_user)
self.user = get_user_model().objects.create_user(
email = 'test@londondevapp.com',
password = 'Test@123',
name = 'Test 1'
)
推荐阅读
- excel - VBA查找列中出现的最大单词及其计数
- javascript - converting date from one given format to another
- cordova - Functional need : annotate PDF/PNG/JPEG. (Ionic 3 cordova 8)
- javascript - How to Hide the Boostrap menu when click on nav links in mobile version
- javascript - 控制台中的左手分配错误无效
- php - SFTP 服务器的配置文件
- c++ - 为什么即使定义了“标识符未定义错误”?
- jquery - 在下拉列表中选择一个选项后,一个值将显示在输入中。Jquery 与 Ajax
- ruby-on-rails - 无法将未经许可的参数转换为哈希轨
- c# - 如何解决或跳过 SQLXMLBulkLoad 的共享问题(事务模式)