Как создать массив внутри объекта при работе с 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, чтобы автоматически генерировать модели из существующей базы данных.

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