Невозможно создать суперпользователя, так как внешний ключ не может быть null

Как присвоить значение внешнего ключа при создании суперпользователя в Django?

Я хочу создать нового суперпользователя с помощью команды python manage.py createsuperuser, но получаю ошибку: ValueError: Cannot assign "<QuerySet [<Company: Company object (1)>]>": "Worker.company" должен быть экземпляром "Company".

Вот код:

class CompanyAccountType(models.Model):
    accountTypeName = models.CharField(max_length=50)
    accountTypeValue = models.IntegerField()

class Company(models.Model):
    city = models.ForeignKey(City, on_delete=models.RESTRICT)
    category = models.ForeignKey(Category, on_delete=models.RESTRICT)
    companyAccountType = models.ForeignKey(CompanyAccountType, on_delete=models.RESTRICT)
    
    
class MyAccounManager(BaseUserManager):
    def create_user(self, username, password):
        user = self.model(
            username=username,
        )
        
        #I tried this for testing (real I would like to send id throught request), but I get error 
        #ValueError: Cannot assign "<QuerySet [<Company: Company object (1)>]>": "Worker.company" must be a "Company" instance.
        companyObj = Company.objects.filter(id=1)
        user.company = companyObj
        
        user.set_password(password)
        user.save(using=self._db)
        return user
    
    def create_superuser(self, username, password):
        user = self.create_user(username=username, 
                            password = password,
                            )                        
        #user.company.id = 1
        user.save(using=self._db)
        return user

class Worker(AbstractBaseUser):
    username = models.CharField(max_length=30, unique=True, default="user")
    password = models.CharField(max_length=300, default="password")
    company = models.ForeignKey(Company, on_delete=models.RESTRICT)  #blank=True
    workerName = models.CharField(max_length=50)
    workerProfileImage = models.ImageField(upload_to='images/', default = "images/defaultUser.png", null = True)

    USERNAME_FIELD = 'username'
    #REQUIRED_FIELDS = ['company']

    objects = MyAccounManager()

    def __str__(self):  
        return self.username

    def has_perm(self, perm, obj=None):
        return True
    
    def has_module_perms(self, app_label):
        return True

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)
Вернуться на верх