Доступ к представлению, которое предназначено для зарегистрированных пользователей в тестировании django

Я пытаюсь создать несколько тестов для моего проекта django. У меня не было проблем с созданием тестов моделей, но я получаю множество ошибок при попытке сделать тесты представлений. Большинство моих представлений зависит от пользователя, который должен войти в систему, а я не могу найти способ войти в систему. Я использую встроенную систему AUTH от deafult django.
VIEW :

@login_required
def fields(request):

    if request.user.profile.user_package == "Livestock":
        raise PermissionDenied()

    field_list = Field.objects.filter(user = request.user)
    context = {
         "title": "Fields",
         "field_list" : field_list,
     }
     template = 'agriculture/fields.html'
     return render(request, template, context)

TetCase:

class TestViews(TestCase):

    @classmethod
    @factory.django.mute_signals(signals.pre_save, signals.post_save, signals.pre_delete, signals.post_delete)
    def setUpTestData(cls):
        # Create new user 
        test_user = User.objects.create(username='test_user',password='1XISRUkwtuK')
        test_user.save()
        c = Client()
        profile = Profile.objects.get_or_create(user = test_user, user_package = 'hybrid')
        c.login(username = test_user.username, password = test_user.password)
        Field.objects.create(user=test_user,friendly_name='Arnissa')                                                                                         

    
    def test_logged_in_user(self):

        login = self.client.login(username='test_user', password='1XISRUkwtuK')
        response = self.client.get(reverse('agriculture:fields'))

        # Check our user is logged in
        self.assertEqual(str(response.context['user']), 'test_user')
        # Check that we got a response "success"
        self.assertEqual(response.status_code, 200)

path:path('fields', views.fields, name='fields')

и настройки, если они оказывают какую-либо помощь :

LOGIN_REDIRECT_URL = 'dashboard:index'
LOGOUT_REDIRECT_URL = 'login'
LOGIN_URL = 'login'

На моих тестах я получаю ошибку TypeError: 'NoneType' object is not subscriptable, когда проверяю, вошел ли пользователь в систему. Если я пытаюсь получить ответ, я получаю AssertionError: 302 != 200. Самое близкое значение, которое я получил при настройке с моими результатами, было AnnonymousUser != test_user. Я не могу найти ответ на мою проблему, есть идеи?

При создании пользователя в Django не следует использовать метод create менеджера пользователей, так как при этом пароль устанавливается в виде обычного текста, а не шифруется. Попробуйте создать пользователя с помощью метода create_user, например, так:

test_user = User.objects.create_user(username='test_user',password='1XISRUkwtuK')

Если вы не хотите использовать этот метод, вы всегда можете использовать force_login клиентский метод для входа пользователя в систему без необходимости указывать логин и пароль следующим образом:

c.force_login(test_user)
Вернуться на верх