我正在尝试使用django-nonrelappengine并尝试使用a djangotoolbox.fields.ListField来实现多对多关系.正如我在文档中读到的那样ListField,您可以使用某种方法为djamgo-nonrel制定解决方法,而不支持多对多关系.
这是我的模型的摘录:
class MyClass(models.Model):
field = ListField(models.ForeignKey(AnotherClass))
Run Code Online (Sandbox Code Playgroud)
因此,如果我正确地做到这一点,我将创建一个外键列表到另一个类,以显示与另一个类的多个实例的关系
通过这种方法一切正常......没有例外.我可以在代码和视图中创建`MyClass'对象.但是当我尝试使用管理界面时,我收到以下错误
No form field implemented for <class 'djangotoolbox.fields.ListField'>
Run Code Online (Sandbox Code Playgroud)
所以我虽然会尝试以前没有做过的事情.创建我自己的字段.实际上我自己的形式是MyClass在管理界面中编辑实例.这是我做的:
class MyClassForm(ModelForm):
field = fields.MultipleChoiceField(choices=AnotherClass.objects.all(), widget=FilteredSelectMultiple("verbose_name", is_stacked=False))
class Meta:
model = MyClass
Run Code Online (Sandbox Code Playgroud)
然后我将MyClassForm表单传递给管理界面
class MyClassAdmin(admin.ModelAdmin):
form = MyClassForm
admin.site.register(MyClass, MyClassAdmin)
Run Code Online (Sandbox Code Playgroud)
我虽然这会起作用,但事实并非如此.当我进入管理界面时,我得到了与以前相同的错误.谁能告诉我在做什么错在这里...或者,如果您有任何其他建议或使用的成功案例ListField,SetField等从djangotoolbox.fields在管理界面,将是非常赞赏.