Создание пользователей и суперпользователей с пользовательским `MyCompanyUser(AbstractUser)`, связанным N:1 с моделью `Customer(models.Model)`.
Я новичок в Django.
- Я создал класс
Customer. - Я создал пользовательский класс
NeuroCloud(AbstractUser). - Затем соотнесите их, добавив поле внешнего ключа к пользовательскому классу.
- Когда я пытаюсь создать суперпользователя с помощью
python manage.py createsuperuserвозникает ошибка (скопированная ниже). Похоже, что ошибка возникает из-за того, что не задан/не доступен первичный ключ (связанный сCustomer). - Моя цель - иметь возможность создавать пользователей или суперпользователей, указывая 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)