0

私はレストランのメニュー システムを作成しています。モデル (データベース) から django 形式で選択可能な柔軟な属性を持つメニュー項目を一覧表示できるようにする必要があります。アイテムの数と属性は事前に定義されていないため、柔軟である必要があり、フォームはこれをレンダリングできる必要があります。

使用例:

1. Hawaiian Pizza
   * unselectable attributes: pineapple, ham (we are assuming you can't change this)
   * selectable attributes (all boolean True/False): spicy, extra cheese, extra meat, extra pineapple
   * prices: large - $9.99, extra large - $14.99 

これは次のようにレンダリングされます。

1. Hawaiian Pizza
Pineapple and Ham
[ ] spicy  [ ] extra cheese  [ ] extra meat  [ ] extra ham

$9.99 { button } 
$14.99 { button }

これにより、次の注文を行うことができます

a) ハワイアン ピザ、余分なチーズ、余分な肉でスパイシーに! 特大サイズで $14.99

また

b) スパイシーなハワイアンピザ。9.99 ドルで大

理想的な状況では、「追加の属性」に価格を追加することさえあります.

柔軟な属性を取得する方法を知っている人はいますか? ...またはこれを達成する方法についての提案はありますか?

これは、柔軟な属性システムを備えた Drupal が理想的だったようです。

4

1 に答える 1

1

次のような追加のモデルを使用して、オプションをアイテムに接続できると思います。

class Option(models.Model): 
    name = models.CharField(...) # group name for radios, option name for checks
    required = models.BooleanField() # is radio?

class ItemOptions(models.Model):
    item = models.ForeignKey(Item)
    option = models.ForeignKey(Option)
    value = models.CharField(...) # option value
    price = models.DecimalField() # if applied

次に、オプションのフィールドごとにチェックボックスを表示し、必要なフィールドごとにラジオボタンを表示するだけです ( name1 つのオプションのいくつかのラジオで同じです)。次に、すべての注文データを入れるPickleFieldJSONField、別のモデルを追加してそれらの関係を保存します。

于 2012-05-10T07:09:17.723 に答える