AssertionError: 404 != 200 в тестировании django

У меня есть тестовый код, но он выдает ошибку: self.assertEquals(response.status_code, 200) AssertionError: 404 != 200

class TestViews(TestCase):
    def setUp(self):
        self.client = Client()
        self.list_url = reverse('home')
        self.about_url = reverse('about', args=[1])

    def test_index(self):
        response = self.client.get(self.list_url)

        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'job_app/index.html')

    def test_about(self):
        response = self.client.get(self.about_url)

        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'job_app/about.html')

мой url:

path('about/<int:pk>/', views.about.as_view(), name='about'),

view:

class about(DetailView):
    model = JobsModel
    template_name = 'job_app/about.html'
    context_object_name = 'job'

Я не знаю, что делать

Вы не создали запись JobsModel. Вам следует сначала создать ее:

class TestViews(TestCase):
    def setUp(self):
        self.client = Client()
        #               may require values 🖟🖟
        self.job = JobsModel.objects.create()
        self.list_url = reverse('home')
        self.about_url = reverse('about', args=[self.job.pk])

    def test_index(self):
        response = self.client.get(self.list_url)

        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'job_app/index.html')

    def test_about(self):
        response = self.client.get(self.about_url)
        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'job_app/about.html')

Примечание: В Django представления, основанные на классах (CBV), часто имеют суффикс …View, чтобы избежать столкновения с именами моделей. Поэтому вы можете переименовать класс представления в AboutView, вместо About.


Примечание: Модели обычно не имеют суффикса …Model. Поэтому, возможно, лучше переименовать JobsModel в Job.

class TestViews(TestCase):
def setUp(self):
    test_user = User.objects.create_user(username='test', password='password123')         #new!!!!!
    self.client = Client()
    self.job = JobsModel.objects.create(     #new!!!!!
        company_name = 'test',  
        description = 'test',
        salary = 1,
        work_position = 'test',
        phone_number = '1111111',
        email = 'test@gmail.com',
        creator = User.objects.get(username='test'),   #new!!!!!!
        
    )
    self.list_url = reverse('home')
    self.about_url = reverse('about', args=[self.job.pk])

def test_index(self):
    response = self.client.get(self.list_url)

    self.assertEquals(response.status_code, 200)
    self.assertTemplateUsed(response, 'job_app/index.html')

def test_about(self):
    response = self.client.get(self.about_url)

    self.assertEquals(response.status_code, 200)
    self.assertTemplateUsed(response, 'job_app/about.html')
Вернуться на верх