Возможно ли встроить ArrayModelField в ArrayModelField? - PullRequest
0 голосов
/ 09 мая 2019

Я работаю над проектом, используя django, подключаясь к базе данных MongoDB, используя djongo.У меня есть несколько моделей и несколько абстрактных моделей, которые я встраиваю как ArrayModelFields.Однако, когда я пытаюсь использовать ArrayModelField внутри модели, на которую, в свою очередь, ссылаются как на ArrayModelField, я получаю объект «nontype» не повторяемый (не знаю почему).

Я заставил систему работать, объединив в этом случае две модели (Grade & Detail) в одну (после того, как модель Grade не существовала), но возможно ли вообще это сделать?что я хотел сделать вначале?

До того, как я попробовал различные варианты встраивания для списков и массивов, как указано в документации по djongo, но больше ничего не работает.

class Grade(models.Model):
    kihon_Grade = models.CharField(max_length = 2, null = True)
    kata_Grade = models.CharField(max_length = 2, null = True)
    kumite_Grade = models.CharField(max_length = 2, null = True)
    class Meta:
        abstract = True

class Detail(models.Model):
    member = models.ForeignKey(to = Member, on_delete = None)
    rank = models.CharField(max_length = 10, null = True)
    grade = models.ArrayModelField(model_container = Grade, null = True)
    result = models.CharField(max_length = 10, null = True)
    class Meta:
        abstract = True

class Grading(models.Model):
    _id = models.ObjectIdField()
    examiner = models.CharField(max_length = 25, null = True)
    date = models.DateField(null = True, blank = True)
    detail = models.ArrayModelField(model_container=Detail, null=True, blank=True)
    def __str__(self):
        return self.date

Я получаю следующее исключениеБрошенный.

Версия Django: 2.0

Тип исключения: TypeError

Значение исключения: объект 'NoneType' не может быть повторен

Расположение исключения:D: \ COMP405 \ COMP405 \ env \ lib \ site-packages \ djongo \ models \ fields.py в has_changed, строка 329

Исполняемый файл Python: D: \ COMP405 \ COMP405 \ env \ Scripts \ python.exe

Python Версия: 3.7.2

...