首页 > 解决方案 > 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)

标签: pythondjangoresttesting

解决方案


我用 from create_user to固定create_superuser,它的工作!在def setUp()管理端代码中起作用。

它是superuser登录的东西,所以不是使用create_useri put create_superuserand 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'
        )

推荐阅读