Создание пользователей и суперпользователей с пользовательским `MyCompanyUser(AbstractUser)`, связанным N:1 с моделью `Customer(models.Model)`.

Я новичок в Django.

  1. Я создал класс Customer.
  2. Я создал пользовательский класс NeuroCloud(AbstractUser).
  3. Затем соотнесите их, добавив поле внешнего ключа к пользовательскому классу.
  4. Когда я пытаюсь создать суперпользователя с помощью python manage.py createsuperuser возникает ошибка (скопированная ниже). Похоже, что ошибка возникает из-за того, что не задан/не доступен первичный ключ (связанный с Customer).
  5. Моя цель - иметь возможность создавать пользователей или суперпользователей, указывая email, пароль и customer (нет первичного ключа, но есть его имя, которое уникально).

Простите, что недостаточно конкретен, но я изучаю Django без опыта веб-программирования.

Модели будут выглядеть примерно так:

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

# Create your models here.
# TODO: docstrings (ONLY MEANINGFUL INFO!)


class Customer(models.Model):
    """
    """
    date_joined = models.DateTimeField(auto_now_add=False)


class NeuroCloudUser(AbstractUser):
    """
    """
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)

Когда я пытаюсь создать суперпользователя, возникает следующая ошибка:

В

class NeuroCloudUser(AbstractUser):
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)

Вы объявляете поле, связывающее вашего пользовательского пользователя с объектом customer, но делаете это поле обязательным, поэтому, когда вы пытаетесь создать суперпользователя, он должен иметь некоторое значение в поле customer. Чтобы сделать это поле необязательным, вы должны добавить blank=True и null=True:

class NeuroCloudUser(AbstractUser):
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE, blank=True, null=True)
Вернуться на верх