Модальные формы в списке изменений Django
Я пытаюсь сделать так, чтобы при выборе действия на странице открывалась модальная форма. Но я не понимаю как отобразить форму при выборе действия. (Использую bootstrap для создания модальных форм) Получилось только с render(*args)
#admin.py
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.contrib import admin, messages
from servers.forms import SetValueForm
def set_value_action(self, request, queryset):
form = None
if 'apply' in request.POST:
form = SetValueForm(request.POST)
if form.is_valid():
val = form.cleaned_data['val']
count = 0
for item in queryset:
item.val = val
item.save()
count += 1
self.message_user(request, "Success add %d." % (count))
return HttpResponseRedirect(request.get_full_path())
if not form:
form = SetValueForm(initial={'_selected_action': request.POST.getlist(admin.ACTION_CHECKBOX_NAME)})
return render(request, 'admin/actions/test.html', {'items': queryset,'form': form, 'title':u'Set new value'})
# forms.py
class SetValueForm(forms.Form):
VALUES = [
('Val1', 'Val1'),
('Val2', 'Val2'),
('Val3', 'Val3')]
_selected_action = forms.CharField(widget=forms.MultipleHiddenInput)
val = forms.ChoiceField(label='value', choices=VALUES)
# test.html
<div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Set value</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
<div class="form-group">
<form action="" method="post">{% csrf_token %}
<label>val:</label>
{{ form.val }}
<p>New value set for:</p>
<ul>{{ items|unordered_list }}</ul>
<input type="hidden" name="action" value="set_value_action" />
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<input type="submit" name="apply" class="btn btn-primary">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
Я хочу сделать отображение формы прямо на странице модели (changelist).