使用 EmbeddedField 和 ModelForm,python,django-admin,djongo"/>

首页 > 解决方案 > 值:xx 必须是使用 EmbeddedField 和 ModelForm

问题描述

尝试使用EmbeddedFieldDjongo 但没有任何成功。

输出错误: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

标签: pythondjango-admindjongo

解决方案


经过数小时的测试,在 1.3.3 版本中有一个错误,降级到 1.3.1 一切正常。

关于这个问题在这里


推荐阅读