Django назначить пользователя модели

Я хочу назначить пользователя модели в django, я создал пользовательскую модель User и формы регистрации/входа, но теперь я хочу назначить модель User другой модели Customer, когда создается новый пользователь Вот модель Customer

class Customer(models.Model):
id = models.AutoField(primary_key=True)
User = models.OneToOneField(
    Account, on_delete=models.CASCADE, null=True, blank=True)
name = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True)
phone = models.CharField(max_length=200, default='0', null=True, blank=True)
address = models.CharField(
    max_length=200, default=' ', null=True, blank=True)
city = models.CharField(max_length=200, default=' ', null=True, blank=True)

def __str__(self):
    if self.name == None:
        return "ERROR-CUSTOMER NAME IS NULL"
    return self.name

Примечание: Я могу назначить пользователя вручную в базе данных и она перечисляет всех пользователей, но я хочу, чтобы она делала это сама, когда создается новый пользователь

Я думаю, что лучше расширить модель User и добавить больше полей, чем создавать новую модель (в которой есть User onetoonefiled). Что-то вроде этого:

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio = models.TextField(max_length=500, blank=True)
    location = models.CharField(max_length=30, blank=True)
    birth_date = models.DateField(null=True, blank=True)

Именно такой подход я использую в своих проектах.
Здесь у вас есть поля модели пользователя по умолчанию:
Поля по умолчанию модели пользователя Вам не нужно добавлять их в ваш класс Profile.

Я основываюсь на этой статье: Как расширить пользовательскую модель Django Model

не забудьте добавить в файл admin.py:

from django.contrib import admin
from .models import Profile

# Register your models here.

admin.site.register(Profile)

чтобы увидеть профили на странице администратора

Исправлено путем установки пользователя в модели Customer при создании пользователя

Customer.objects.create(user=request.user, name=username, email=email, phone=phone)
Вернуться на верх