小编Rma*_*man的帖子

ListField的Django-nonrel表单字段

我正在尝试使用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在管理界面,将是非常赞赏.

google-app-engine django-admin listfield django-nonrel

9
推荐指数
1
解决办法
6772
查看次数