0

djangoで動的フィールドを使用したいということは、1つのモデルが他のモデルで指定されていることを意味します。

例を通して説明できることを願っています。

モデル名の製品が 1 つあり、新しい製品がアップロードされるたびに、その属性を設定する必要があり、2 番目のテーブルで属性が指定されているということは、この製品モデルでは 2 番目のテーブルに依存する 1 つのフィールドが動的であることを意味します。他のテーブルで「x」を選択すると、そのフィールドがここに表示され、「y」を選択すると、ここに表示されます。そのため、その製品 ID と属性 ID に基づいて、3 番目のテーブルで属性値を指定できます。将来的には、指定された製品のその値を取得できます。

私はこれをたくさん試しましたが、djangoで動的フィールドを使用する方法がわかりません。これを行う方法を教えてください。

ありがとう

4

1 に答える 1

1

そのためには django-json-field を使用することをお勧めします ( https://github.com/derek-schaefer/django-json-field )。db で Text フィールドを 1 つだけ使用しますが、python オブジェクトのように json のオブジェクトにアクセスできます。

json = JSONField() #in your model
json = "{'attributes':{'colour':'blue','size':'2'}, 'image-height':'200px'}" # in your db
{{product.json.attributes}} #in your template
product.json.attributes #in your views

これは、多くの「django」フィールドを作成し、db の 1 つの Text フィールドにのみ格納する優れた方法です。

このアプローチの欠点は、データベースを使用してフィールドを効果的に検索できないことですが、数十の製品がある場合は、視野内で Python によるフィルター処理を行うことができます。

于 2012-10-08T09:09:52.383 に答える