У меня сначала создаются классы моделей Admin, Entrepreneur, CustomUser и две функции, которые добавляют данные в эти классы, также я определяю два приемника, которые запускаются только при добавлении данных в класс CostumUser
это мой файлы моделей:
from django.db import models
from django.contrib.auth.models import *
#user
from django.db.models.signals import post_save
from django.dispatch import receiver
class CustomUser(AbstractUser):
user_type=((1,"admin"),(2,"staff"))
user_type=models.CharField(default=1,choices=user_type,max_length=10)
# Entrepreneur
class Entrepreneur(models.Model):
id_models= models.IntegerField(primary_key=True)
admin=models.OneToOneField(CustomUser,on_delete=models.CASCADE)
date_naissance=models.DateField()
adresse_entr=models.CharField(max_length=20)
telephone=models.IntegerField()
statut_social=(('ce','celébataire'),
('ma','marié'),
('di','divorcé'),
('ve','veuf'),
)
occupation=models.CharField(max_length=50)
niveau_scolaire=(
('pri','primaire'),
('sec','secondaire'),
('cap','certificat aptitude professionel'),
('btp','brevet technicien professionel'),
('bts','brevet technicien superieur'),
('lic','license'),
('mai','maitrise'),
('mas','mastere'),
('doc','doctorat'),
)
niveau_scolaire=models.CharField(default='ser',choices=niveau_scolaire,max_length=50)
annnee_exp=models.IntegerField()
#Projet
class Projet(models.Model):
id_models=models.IntegerField(primary_key=True)
nom_projet=models.CharField(max_length=30)
lieu_implantation=models.CharField(max_length=20)
type_projet=(
('ser','service'),
('com','commerce'),
('agr','agricuture'),
('ind','industrie'),
('IT','technologie information'),
('art','artisanat'),
('tor','tourisme'),
)
type_projet=models.CharField(default='ser',choices=type_projet,max_length=50)
produit=models.CharField(max_length=50)
id_promoteur=models.ForeignKey(Entrepreneur,on_delete=models.CASCADE)
#admin
class Admin(models.Model):
id_admin=models.AutoField(primary_key=True)
admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
objects=Manager()
@receiver(post_save,sender=CustomUser)
def create_user_profile(sender,instance,created,**kwargs):
if created:
if instance.user_type==1:
Admin.objects.create(admin=instance)
if instance.user_type==2:
Entrepreneur.objects.create(admin=instance)
@receiver(post_save,sender=CustomUser)
def save_user_profile(sender,instance,**kwargs):
if instance.user_type==1:
Admin.objects.save()
if instance.user_type==2:
Entrepreneur.objects.save()
Я запускаю makemigration, а также команду migrate при запуске createdupeuser и после создания (имя пользователя, адрес электронной почты и пароль)
i получить эту ошибку:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\core\management\__init__.py",
line 401, in execute_from_command_line
utility.execute()
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\core\management\__init__.py",
line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\core\management\base.py", line
328, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\hp\PycharmProjects\business\lib\site-
packages\django\contrib\auth\management\commands\createsuperuser.py", line 79, in execute
return super().execute(*args, **options)
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\core\management\base.py", line
369, in execute
output = self.handle(*args, **options)
File "C:\Users\hp\PycharmProjects\business\lib\site-
packages\django\contrib\auth\management\commands\createsuperuser.py", line 189, in handle
self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\contrib\auth\models.py", line
158, in create_superuser
return self._create_user(username, email, password, **extra_fields)
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\contrib\auth\models.py", line
141, in _create_user
user.save(using=self._db)
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\contrib\auth\base_user.py",
line 66, in save
super().save(*args, **kwargs)
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\db\models\base.py", line 745,
in save
self.save_base(using=using, force_insert=force_insert,
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\db\models\base.py", line 793,
in save_base
post_save.send(
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\dispatch\dispatcher.py", line
173, in send
return [
File "C:\Users\hp\PycharmProjects\business\lib\site-packages\django\dispatch\dispatcher.py", line
174, in <listcomp>
(receiver, receiver(signal=self, sender=sender, **named))
File "C:\Users\hp\PycharmProjects\business\oasisconsuting\businessplan\models.py", line 74, in
save_user_profile
Admin.objects.save()
AttributeError: 'Manager' object has no attribute 'save'
что не так! и как я могу исправить свои ошибки?