Как правильно протестировать эту функцию в Django?

У меня есть тест, который проверяет, может ли пользователь создать новость или нет. Но мой тест не работает. Я предполагаю, что я делаю что-то неправильно с 'category' и 'author', но я не знаю, как изменить это правильно. Когда я создаю новость на сайте самостоятельно, все работает правильно.

Тест:

@classmethod
    def setUpTestData(cls):
        user = User.objects.create(username='test1')
        user.set_password('test1')
        user.save()
        Profile.objects.create(user=user)
        NewsCategory.objects.create(category='Sport')

def test_if_user_can_create_news(self):
    user = self.client.login(username='test1', password='test1')
    self.client.post(reverse('create_news'), {
        'title': 'News 1',
        'description': 'Description news 1',
        'category': NewsCategory.objects.get(category='Sport'),
        'author': user
    })
    self.assertTrue(News.objects.filter(title='News 1').exists())

Модели:

class News(models.Model):
    title = models.CharField(max_length=200, verbose_name='Title')
    description = models.TextField(verbose_name='Description')
    category = models.ForeignKey(NewsCategory, on_delete=models.CASCADE, verbose_name='Category')
    author = models.ForeignKey(Profile, on_delete=models.CASCADE, verbose_name='Author')

class NewsCategory(models.Model):
    category = models.CharField(max_length=100, verbose_name='Category')

Форма:

class NewsForm(forms.ModelForm):
    class Meta:
        model = News
        fields = 'title', 'description', 'category'
Вернуться на верх