Как добавить поля профиля в модель пользователя в области Admin в Django и сохранить данные соответствующим образом, используя сигналы
Я пытаюсь добавить fields из Profile Model в admin область, где мы создаем user удачно используя нижеприведенный код он показывает Profile model fields в этой области, но как только save он показывает NOT NULL constraint failed: main_profile.phone_number.
почему phone_number поля значения не передаются в signals
main.signals.py
from .models import Profile
from django.dispatch import receiver
from django.db.models.signals import post_save
from django.conf import settings
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_profile_for_new_user(sender, **kwargs):
if kwargs['created']:
Profile.objects.create(user=kwargs['instance'])
main.models.py
#код работает нормально, если я устанавливаю поля phone_number на null
class Profile(models.Model):
birth_date = models.DateField(null=True)
phone_number = models.IntegerField()
address = models.CharField(max_length=255, null=True, blank=True)
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
core.models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
email = models.EmailField(unique=True)
admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from .models import User
from main.models import Profile
class UserProfileInline(admin.TabularInline):
model = Profile
@admin.register(User)
class UserAdmin(BaseUserAdmin):
inlines = [UserProfileInline]
add_fieldsets = (
(
None,
{
"classes": ("wide",),
"fields": ('username', 'email', 'password1', 'password2', 'first_name', 'last_name'),
},
),
)
