Модели 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 с другим именем