Значение: xx должно быть экземпляром с EmbeddedField и ModelForm

#python #django-admin #djongo

#python #django-admin #djongo

Вопрос:

Пытаюсь использовать EmbeddedField Djongo, но безуспешно.

Ошибка вывода: Value: en must be an instance of <class 'dict'>

 from djongo import models
from django import forms


class Language(models.Model):
    CODE_LANG_CHOICES = (
        ('en', 'English'),
        ('pt', 'Portuguese'),
    )

    DIRECTION_CHOICES = (
        ('ltr', 'Left-to-right'),
        ('rtl', 'Right-to-left'),
    )

    code = models.CharField(max_length=2, choices=CODE_LANG_CHOICES, default='en')
    direction = models.CharField(max_length=3, choices=DIRECTION_CHOICES, default='ltr')

    def __str__(self):
        return f'{self.code}'

    class Meta:
        abstract = True


class LanguageForm(forms.ModelForm):
    class Meta:
        model = Language
        fields = ('code', 'direction')


class Campaign(models.Model):
    _id = models.ObjectIdField()
    language = models.EmbeddedField(model_container=Language, model_form_class=LanguageForm)
    objects = models.DjongoManager()

    def __str__(self):
        return f'{self.name}'
  

Ошибка предварительного просмотра в Django Admin:

введите описание изображения здесь

Мой requirements.txt файл:

 Django==2.2.16
sqlparse==0.2.4
git https://github.com/nesdis/djongo.git@master#egg=djongo
djangorestframework==3.12.1
  

Python 3.6.12
MongoDB 3.6

Комментарии:

1. Вознаграждение в размере 15 долларов при bountysource.com/issues /…

Ответ №1:

После нескольких часов тестов обнаружена ошибка в версии 1.3.3, понижение версии до 1.3.1 работает все.

Об этой проблеме здесь.