Модели Django приравнивают один файл к другому

я пытаюсь приравнять owner_id к id , то есть когда id пользователя равен 1 и создается организация, я хочу, чтобы owner_id тоже был 1. Какой способ лучше?

class Organization(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(default='0000000',max_length=100)
    type = models.CharField(default='0000000',max_length=20)
    owner_id = models.CharField(id,max_length=100)

    def __str__(self):
        return str(self.name)

это не работает owner_id = models.CharField(id,max_length=100)

На самом деле вам нужно OneToOne отношение.

class Organization(models.Model):
    id = models.AutoField(primary_key=True)
    ...
    owner = models.OneToOneField(User, on_delete=models.SET_NULL, null=True)

При этом, предполагая, что organization является Organization объектом, вы можете вызвать Owner объект или id таким образом:

 organization.owner      # get Owner (User) object
 organization.owner.id   # get id of Owner (User)

Если вы просто хотите читать owner_id, вы можете добавить свойство в вашу модель следующим образом:

class Organization(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(default='0000000',max_length=100)
    type = models.CharField(default='0000000',max_length=20)

    def __str__(self):
        return str(self.name)

    @property
    def owner_id(self):
        return self.id

Это гарантирует, что owner_id всегда будет иметь то же значение, что и id, но вы не сможете изменить его позже, это просто представление id с другим именем

Вернуться на верх