Как создать массив внутри объекта при работе с MongoDB с помощью Django?
Я работаю над проектом, в котором я хочу, чтобы моя модель пользователя имела такую структуру. структура
{
"_id":{
"$oid":"61bf3e026ffc7993a082773e"
},
"email":"user@domain.com",
"role":"student",
"type":"t1",
"fname":"ABC",
"from":{
"org-user":[
"83bf3e026ffc7993a0827731",
"78bf3e026ffc7993a0827731"
]
}
}
В этой модели "from" - это объект, который имеет один ключ "org-user". Этот "org-user" представляет собой массив идентификаторов объектов mongodb.
Вот код, который я написал на данный момент.
from djongo import models
class User(models.Model):
class Meta:
db_table = "users"
_id = models.ObjectIdField()
email = models.EmailField(
max_length=255,
unique=True,
)
role = models.CharField(max_length=255, default="student")
type = models.CharField(max_length=255, default="internal")
fname = models.CharField(max_length=255)
Есть идеи, как я могу достичь этого в Django?
Посмотрите на djongos models.ArrayField
, что-то вроде
class User(models.Model):
class Meta:
db_table = "users"
_id = models.ObjectIdField()
email = models.EmailField(
max_length=255,
unique=True,
)
role = models.CharField(max_length=255, default="student")
type = models.CharField(max_length=255, default="internal")
fname = models.CharField(max_length=255)
# something like that
org_user = models.ArrayField(
model_container=models.CharField(max_length=100)
)
Подробнее об этом читайте здесь MongoDB ArrayField.
Вы также можете попробовать python manage.py inspect_db User > models_file.py
, но я не знаю, что здесь может сделать djongo, чтобы автоматически генерировать модели из существующей базы данных.