Как протестировать форму обновления в django

У меня возникла проблема в моем проекте django. У меня есть пользовательская модель пользователя, и я создал форму обновления и форму регистрации с классом ModelForm для модели пользователя. Я написал модульный тест с классом TestCase для тестирования формы, но получаю сообщение об ошибке __init__() got an unexpected keyword argument 'instance'. Я не смог найти никакого решения для этой проблемы. Может ли кто-нибудь помочь мне решить эту проблему? Форма:

class UserUpdateForm(forms.ModelForm):

    class Meta:
        model = User
        fields = ('email', 'username', 'first_name', 'last_name')

    username                = forms.CharField(
        widget=forms.TextInput(
            attrs={

            }
        )
    )

    email                   = forms.EmailField(
        widget=forms.EmailInput(
            attrs={

            }
        )
    )

    first_name              = forms.CharField(
        widget=forms.TextInput(
            attrs={

            }
        )
    )

    last_name               = forms.CharField(
        widget=forms.TextInput(
            attrs={

            }
        )
    )

    def clean_username(self):
        username = self.cleaned_data.get('username').lower()

        try:
            user = User.objects.exclude(pk=self.instance.pk).get(username=username)

        except User.DoesNotExist:
            return username

        else:
            raise forms.ValidationError(f"Sorry but {username} was taken already")


    def clean_email(self):
        email = self.cleaned_data.get('email').lower()

        try:
            user = User.objects.exclude()

        except User.DoesNotExist:
            return email

        else:
            raise forms.ValidationError(f"Sorry but {email} was taken already")


    def clean_first_name(self):
        first_name = self.cleaned_data.get('first_name')
        first_name = normalize_name(first_name)
        return first_name


    def clean_last_name(self):
        last_name = self.cleaned_data.get('last_name')
        last_name = normalize_name(last_name)
        return last_name

Мой модульный тест:

def updateUser(self):

        user = UserRegisterForm(data)
        if user.is_valid():
            user = user.save()
            print(user.username)

        username        = 'user1'
        email           = 'user1@gmail.com'
        first_name      = 'user'
        last_name       = 'user'
        date_of_birth   = '2003-2-16'
        password1       = 'userpassword'
        password2       = 'userpassword'

        data = {
            'username':      username,
            'email':         email,
            'first_name':    first_name,
            'last_name':     last_name,
            'date_of_birth': date_of_birth,
            'password1':     password1,
            'password2':     password2,
        }

        user = UserRegisterForm(data)
        if user.is_valid():
            user = user.save()
            print(user.username)


        user = User.objects.get(email='user1@gmail.com')
        print(user)
        data = {
            'username': 'user2',
        }

        form = UserUpdateForm(instance=user)

        print(form)
Вернуться на верх