Django Прикрепление переменных от одного шага к другому

Как я могу взять 2-ю форму и добавить ее к первой форме, а затем выборочно не позволить этому пользователю войти в систему.

возможно, добавить переменную status?

etc.

username,password,email,first_name,last_name,verified

Нужно ли мне добавить еще одну модель? С аналогичной формой регистрации?

views.py

from django.core.files.storage import FileSystemStorage
import os
from django.conf import settings
class DoctorWizard(SessionWizardView):
    file_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT, 'doctor'))
    template_name = "registration/signup.html"
    form_list = [SignUpForm,verify]
    
    def done(self, form_list, **kwargs):
        data=process_data(form_list)
        return redirect('home')
class UserWizard(SessionWizardView):
    template_name = "registration/signup.html"
    form_list = [ SignUpForm]
    def done(self, form_list, **kwargs):
        data=process_data(form_list)
        form_list[0].save()
        userCreate = form_list[0]
        username = userCreate.cleaned_data.get('username')
        raw_password = userCreate.cleaned_data.get('password1')
        user = authenticate(username=username, password=raw_password)
        login(self.request, user)
        return redirect('home')

forms.py

class SignUpForm(UserCreationForm):
    first_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
    last_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
    email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')

    class Meta:
        model = Profile
        fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )

class verify(forms.Form):
    verified = forms.ImageField(required=True)
    class Meta:
        model = Profile
        fields = ('verified',)

models.py

class Profile(AbstractUser):
    
    bio = models.TextField(max_length=100, blank=True)
    phone_number = PhoneNumberField(max_length=25, region="US")
    birth_date = models.DateField(blank = True, null = True) 
    is_doctor = models.BooleanField(default=False)
    verified = models.ImageField(upload_to='media/doctor')
    date_created = models.DateTimeField(auto_now_add=True)
    avatar = models.ImageField(default='default.png', upload_to='')
def done(self, form_list, **kwargs):
        process_data(form_list)
        userCreate = form_list[0]
        userCreate.save()
        username = userCreate.cleaned_data.get('username')
        raw_password = userCreate.cleaned_data.get('password1')
        user = authenticate(username=username, password=raw_password)
        if user:
            user.verified=form_list[1].cleaned_data.get('verified')
            user.is_doctor=True
            user.is_active=False
            user.save()

Просто возьмите пользователя и получите доступ к его полям.

Вернуться на верх