2016-04-11 23 views
1

私はdjangoの編集可能な選択肢を画像のように追加しようとしています。残念ながら、django-autocompleteのような解決策は、私のニーズを十分に満たしていません。オートコンプリートはうまく見えますが、もしそうならば、私はdjangoモーダルを作成してURLビューのリクエストを通して選択肢を生成する必要がありますが、私の場合はそれをする必要はありません。ドロップダウンリストでそれらのいずれかを選択して編集または送信します。djangoの編集可能な選択肢を追加してください

私が見つけた、しかし、彼らは非常によく私のニーズにフィットしていない解決策:あなたはだけこれらの3つのエントリを使用したい場合は

Django admin: Change selected box of related fields to autocomplete

Django editable dropdown field

enter image description here

+0

jquery-uiオートコンプリートとajaxコールを使用してオプションを取得しました(静的なオプションが必要な場合は、オートコンプリートのjavascriptコードに直接入れることができます)。 –

答えて

0

を最も速い方法はdatalistを使用することです、あなたのHTMLのどこかに追加するだけです。

<div id="page-wrapper"> 
 
    <label for="ip">Network address</label> 
 
    <input type="text" id="ip" list="ip-datalist"> 
 
    <datalist id="ip-datalist"> 
 
     <option>192.168.0.0/24</option> 
 
     <option>10.0.0.0/24</option> 
 
     <option>172.16.0.0/24</option> 
 
    </datalist> 
 
</div>

0

あなたのオプションは変更しない可能性がある場合は、上記の答えのようなあなたのhtmlにそれらをハードコーディングすることができます。

class MyForm(forms.Form): 

    ip_list = ((1, '192.168.0.0/24'), (2, '10.0.0.0/24'), 
     (3, '172.16.0.0/24'),) 

    network_address = forms.ChoiceField(label='Network Address', 
     choices=ip_list) 
    ... 

あなたがテンプレートにフォームオブジェクトをレンダリングしたら、それはこのようなHTML生成終わる:

<label for="id_network_address">Network Address:</label> 
<select id="id_network_address" name="network_address"> 
    <option value="1">192.168.0.0/24</option> 
    <option value="2">10.0.0.0/24</option> 
    <option value="3">172.16.0.0/24</option> 
</select> 
をフォームを使用してドロップダウンを生成している場合しかし、このような何かをする方が良いだろう

このようにすれば、必要に応じてip_listを簡単に変更することができます。また、すべてのコードを1か所に保存できます。これは、ドキュメントhereで説明されています。

関連する問題