これは、そのままでは簡単ではありません。 Djangoの管理モジュールでListFieldとEmbeddedModelFieldの型フィールドを管理し、それを行うためにいくつかのハッキングを行う必要があります。あなたは、それは、Djangoの管理者で動作するようにEmbeddedModelFieldオブジェクトを処理するクラスを定義する必要が
Use EmbeddedModelField in Django's admin
:次の2つの部品を実装する必要があります。 Hereは素晴らしいサンプルコードを見つけるためのリンクです。
あなたmodels.py
ファイルにこのクラスを追加し、Cart
モデルにEmbedOverrideField
代わりのEmbeddedModelField
を使用します:
class ObjectListField(forms.CharField):
def prepare_value(self, value):
pass # you should actually implement this method
def to_python(self, value):
pass # Implement this method as well
:2つのメソッドを持っていること
forms.py
に
class EmbedOverrideField(EmbeddedModelField):
def formfield(self, **kwargs):
return models.Field.formfield(self, ObjectListField, **kwargs)
は、クラスを実装し、以下のデモンストレーションのためだけのコードブロックがあります
Use ListFields in Django's admin
また、ListFieldオブジェクトを扱うクラスを定義して、Djangoの管理者と連携させる必要があります。 Hereは素晴らしいサンプルコードを見つけるためのリンクです。次のデモのためだけのコードブロックです:
ではなくListField
Cart
でモデルのごmodels.py
ファイルとItemsField
にこのクラスを追加します。
class StringListField(forms.CharField):
def prepare_value(self, value):
pass # you should actually implement this method
def to_python(self, value):
pass # Implement this method as well
:
class ItemsField(ListField):
def formfield(self, **kwargs):
return models.Field.formfield(self, StringListField, **kwargs)
を二つの方法がありますforms.py
でクラスを実装