ValueError: "<Пользователь: harry1>" должен иметь значение для поля "id", прежде чем это отношение "многие-ко-многим" можно будет использовать в Django

Мне нужна помощь с Django web Framework Я не могу решить эту проблему или не могу определить источник проблемы. Пожалуйста, помогите мне с этой проблемой основная проблема написана в заголовке.

Вот моя трассировка ошибки:

Traceback (most recent call last):
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\Documents\CodingFox\CodingFox_final\CodingFox\Users\views.py", line 37, in registeration_form
    form.save()
  File "D:\Documents\CodingFox\CodingFox_final\CodingFox\Users\forms.py", line 18, in save   
    user = super().save(*args, **kwargs)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\forms.py", line 131, in save
    user.save()
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\fields\related_descriptors.py", line 536, in __get__
    return self.related_manager_cls(instance)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\fields\related_descriptors.py", line 851, in __init__
    raise ValueError('"%r" needs to have a value for field "%s" before '
ValueError: "<User: harry1>" needs to have a value for field "id" before this many-to-many relationship can be used.

Файл Models.py

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
import cv2

class Profile(models.Model):
    user =models.OneToOneField(User, on_delete=models.CASCADE) 
    cover_img = models.ImageField(default='default.png',upload_to='cover_pics')
    image = models.ImageField(default='default.jpg',upload_to='profile_pics')
    # bio = models.TextField()
    def __str__(self):
        return f'{self.user.username} Profile'
    def save(self ,*args, **kwargs):
        super(Profile, self).save( *args, **kwargs)
        img = cv2.imread(self.image.path)
        output_size = cv2.resize(img,(300,300))
        cv2.imwrite(self.image.path, output_size)

Forms.py

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.forms import models 
from .models import Profile

class UserRegistrationForm(UserCreationForm):
    email=forms.EmailField(required=False)

    class Meta:
        model = User
        fields = ['username','email','password1','password2']

Views.py

def registeration_form(request):
    if request.method == 'POST':
        form=UserRegistrationForm(request.POST)
        if form.is_valid():
            form.save()
            username=form.cleaned_data.get('username')
            messages.success(request,f'Account created for {username}!')
            return redirect('login_page')
    else:
        form=UserRegistrationForm()
    context = {
        'title':'Register',
        'form':form
    }
    return render(request,'signup_form.html',context)

Urls.py

from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
    path('register/',views.registeration_form, name='register_page'),
]

Можете ли вы, пожалуйста, дать мне решение? Эта штука работала неделю назад, но сейчас она выдает ошибки. Он также выдает ошибки при создании Post.

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