私はappengineで実験しており、多対多の関係を実装するためdjango-nonrel
にを使用しようとしています。djangotoolbox.fields.ListField
ドキュメントを読んだように、aListField
は、多対多の関係をサポートしていないdjamgo-nonrelの回避策を作成するために使用できるものです。
これは私のモデルからの抜粋です:
class MyClass(models.Model):
field = ListField(models.ForeignKey(AnotherClass))
したがって、これが正しく行われている場合は、別のクラスの複数のインスタンスとの関係を示すために、別のクラスへの外部キーのリストを作成しています。
このアプローチでは、すべてが正常に機能します...例外はありません。コードとビューで`MyClass'オブジェクトを作成できます。しかし、管理インターフェースを使用しようとすると、次のエラーが発生します
No form field implemented for <class 'djangotoolbox.fields.ListField'>
だから私は今までやったことのないことをやってみようと思います。自分のフィールドを作成します。MyClass
実は、管理インターフェースでインスタンスを編集するための私自身のフォームです。これが私がしたことです:
class MyClassForm(ModelForm):
field = fields.MultipleChoiceField(choices=AnotherClass.objects.all(), widget=FilteredSelectMultiple("verbose_name", is_stacked=False))
class Meta:
model = MyClass
MyClassForm
次に、使用するフォームとして管理インターフェースに渡します
class MyClassAdmin(admin.ModelAdmin):
form = MyClassForm
admin.site.register(MyClass, MyClassAdmin)
私はこれでうまくいくと思いますが、そうではありません。管理インターフェースに移動すると、以前と同じエラーが発生します。誰かが私がここで間違っていることを教えてもらえますか...または、管理インターフェースで、、などを使用する他の提案やサクセスストーリーがあれば、ListField
それSetField
はdjangotoolbox.fields
非常にありがたいです。