(NOT NULL constraint failed:A_id)

Я создаю миграции и запускаю migrate. Затем я отправляю форму для регистрации, но получаю ошибку NOT NULL constraint failed для A_id. Ниже приведены мои модели:

    models.py
    class A(models.Model):
        u = models.OneToOneField(User, on_delete=models.CASCADE)
        num = models.IntegerField()
    
    class B(models.Model):
        x = models.ForeignKey(u, on_delete=models.CASCADE) 
        y = models.CharField(max_length = charLen100)


    forms.py
    class AForm(forms.ModelForm):
        password = forms.CharField(widget=forms.PasswordInput(), required=True),
        first_name = forms.CharField(max_length=charLen100, widget = forms.TextInput(attrs= 
   {'placeholder': 'First Name'}))
        last_name = forms.CharField(max_length=charLen100, widget=forms.TextInput(attrs= 
   {'placeholder': 'Last Name'}))
        num_items = forms.CharField(label="How many items do you own?", 
    widget=forms.Select(choices=ITEM_NUMBER_CHOICES))
        class Meta:
            model = A
            fields = ('username', 'email', 'password','first_name', 'last_name')

    class BForm(forms.ModelForm):
        name = forms.CharField(widget=forms.TextInput(attrs={'placeholder':name'}))
        class Meta:
            model = B
            fields = ('name')

    views.py
    def register(request):
        registered = False
    
        if request.method == 'POST':
            user_form = AForm(request.POST)
            profile_form = BForm(request.POST)
        
            if user_form.is_valid() and profile_form.is_valid():
                user = user_form.save()
                user.set_password(user.password)
         
                profile = profile_form.save(commit=False)
                profile.user = user    
                if 'picture' in request.FILES:
                    profile.picture = request.FILES['picture']
            
                profile.save()
                registered = True
            else:
                print(user_form.errors, profile_form.errors)
        
        else:
            user_form = UserForm()
            profile_form = UserProfileForm()
            context_dict = {}
            context_dict['user_form'] = user_form
            context_dict['profile_form'] = profile_form
            context_dict['registered'] = registered
        
        return render(request, ..., context=context_dict)

Итак, я делаю следующее: у меня есть две таблицы в базе данных A и B, и у A может быть много B, то есть B тогда держит A как внешний ключ. Затем в форме я спрашиваю, сколько всего товаров, и связываю таблицы вместе

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