アプリでキャンペーンを追加および削除するインライン フォームセットを使用していますが、「表示」フィールドがあり、100 個の登録済み表示がある場合、20 個のインラインを登録するのは困難です。そこで、セクターを選択して以下のディスプレイを表示する jquery を使用してサイドバーを作成しました。アイデアは、[追加] ボタン (Adicionar) をクリックして、フィールド "display" が入力されたインライン ディスプレイを作成することです。フィールド「表示」がサイドバーで選択された表示で満たされるインラインフォームセットを作成するにはどうすればよいですか?
画像の様子: http://postimage.org/image/3qp6bq5f9/
サイドバーには次のものがあります。
list.append('<ul><li><input class="list-display" type="hidden" value="'+d.pk+'"> '+d.fields['nome']+' | Janelas: '+d.fields['janelas']+'\
<a class="btn btn-mini" onclick="addInlineFormset('+d.pk+');" value="Adicionar"><i class="icon-plus-sign"></i> Adicionar</a></li></ul>');
「d.pk」は、選択したディスプレイの ID です。
私はまだこのインラインを作成しようとしています。form.htmlにインクルードを入れました:
<div id="janela">
{% include "project/campanha/display_inline.html" %}
</div>
これはajaxです:
function addJanela(id) {
var object_id = id;
var url = '/project/campanha/get_formInline/'+object_id+'/';
$.ajax({
type: 'get',
url: url,
success: function(formset){
var janela = $('#janela');
janela.append(formset);
return false;
},
});
}
私のviews.py:
def get_formInline(request, object_id):
display = Display.objects.get(pk=object_id)
status = Status.objects.filter(nome__exact='Vendido')
initial=[{'postais' : 45, 'status': status,'display': display,}]
JanelaFormSet = inlineformset_factory(Campanha, Janela, extra=1)
formset = JanelaFormSet(initial=initial)
return render_to_response('project/campanha/display_inline.html', {'formset': formset,}, context_instance=RequestContext(request))
ただし、送信では最後のインラインのみを保存します。form.html のソース コード:
<input type="hidden" name="janela_set-TOTAL_FORMS" value="1" id="id_janela_set-TOTAL_FORMS" /><input type="hidden" name="janela_set-INITIAL_FORMS" value="0" id="id_janela_set-INITIAL_FORMS" /><input type="hidden" name="janela_set-MAX_NUM_FORMS" id="id_janela_set-MAX_NUM_FORMS" />
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<input type="hidden" name="janela_set-0-id" id="id_janela_set-0-id" />
<tr>
<td>Postais: <input type="text" name="janela_set-0-postais" value="45" id="id_janela_set-0-postais" /></td>
<td>Status: <select name="janela_set-0-status" id="id_janela_set-0-status">
<option value="" selected="selected">---------</option>
<option value="2">Girando</option>
<option value="1">Vendido</option>
</select></td>
<td>Display: <select name="janela_set-0-display" id="id_janela_set-0-display">
<option value="" selected="selected">---------</option>
<option value="1">Shopping Point</option>
<option value="2">Restaurante</option>
<option value="3">Centro de Artes</option>
</select></td>
<td><input type="checkbox" name="janela_set-0-DELETE" id="id_janela_set-0-DELETE" /></td>
画像印刷では 3 つのインラインが表示されますが、ソースでは 1 つのインラインのみが表示されます。=/
誰でも助けることができますか?ありがとう!