Загруженный файл проекта Django вызывает RelatedObjectDoesNotExist

У меня есть этот проект, который правильно работает на моем компьютере. Однако, когда этот файл проекта извлекается/загружается другими людьми, RelatedObjectDoesNotExist появляется после createsuperuser.

Models.py

class User(AbstractBaseUser):
    email = models.EmailField(
        verbose_name='email address',
        max_length=255,
        unique=True,
    )
    first_name =models.CharField(max_length=100)
    middle_name =models.CharField(max_length=100)
    last_name =models.CharField(max_length=100)

    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    is_chairperson = models.BooleanField(default=False)
    is_faculty = models.BooleanField(default=False)
    is_student = models.BooleanField(default=False)

    objects = UserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['first_name', 'middle_name', 'last_name']

class FacultyInfo (models.Model):
    fac_user = models.OneToOneField(User, on_delete=CASCADE, primary_key=True)

@receiver(post_save, sender=User)
def create_or_update_user_profile(sender, instance, created, **kwargs):
    if created:
        if instance.is_faculty == True:
            FacultyInfo.objects.create(fac_user=instance)
        instance.facultyinfo.save()

Полная трассировка

Traceback (most recent call last):
  File "E:\iPLM-master2\iPLM-master\manage.py", line 22, in <module>
    main()
  File "E:\iPLM-master2\iPLM-master\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\management\__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\management\base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 79, in exe
cute
    return super().execute(*args, **options)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\management\base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 189, in ha
ndle
    self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
  File "E:\iPLM-master2\iPLM-master\CRS\models.py", line 33, in create_superuser
    user = self.create_user(
  File "E:\iPLM-master2\iPLM-master\CRS\models.py", line 26, in create_user
    user.save(using=self._db)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\base_user.py", line 67, in save
    super().save(*args, **kwargs)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\base.py", line 726, in save
    self.save_base(using=using, force_insert=force_insert,
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\base.py", line 774, in save_base
    post_save.send(
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\dispatch\dispatcher.py", line 180, in send
    return [
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\dispatch\dispatcher.py", line 181, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "E:\iPLM-master2\iPLM-master\CRS\models.py", line 149, in create_or_update_user_profile
    instance.facultyinfo.save()
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\fields\related_descriptors.py", line 421, in _get_
    raise self.RelatedObjectDoesNotExist(
CRS.models.RelatedObjectDoesNotExist: User has no facultyinfo.

Я попробовал этот код функции в базе данных факультета Info из этого вопроса Django, проверьте, если связанный объект существует ошибка: RelatedObjectDoesNotExist

def has_user(self):
        return  self.user_id is not None

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


person Asyuiop    schedule 26.05.2021    source источник
comment
Вы создаете экземпляр FacultyInfo только в том случае, если instance.is_faculty имеет значение True, но вы вызвали instance.facultyinfo.save() независимо от этого условия, видите проблему? На самом деле вам даже нужно вызвать instance.facultyinfo.save() там, так как вызов create сохранится в базе данных...   -  person Abdul Aziz Barkat    schedule 26.05.2021
comment
О боже, отступ был неправильным. Также спасибо за очистку файла create. Я надеюсь, что смогу проголосовать за ваш комментарий, но большое спасибо!   -  person Asyuiop    schedule 29.05.2021