У меня есть форма Django с django-select2, и я хотел бы отправить ее не с кнопкой отправки, а с onchange
атрибутом виджета.
Я пытался написать это:
class ManageDocForm(forms.Form):
def __init__(self, *args, **kwargs):
super(ManageDocForm, self).__init__(*args, **kwargs)
app_list = forms.ModelChoiceField(
queryset=App.objects.all(),
label=_('APP Choice'),
widget=ModelSelect2Widget(
model=App,
search_fields=['code__icontains', 'name__icontains'],
attrs={"onChange": 'actionform.submit();',
'data-placeholder': "Please select an APP"}
)
)
Но, похоже, это не работает.
Это мой шаблон:
<div class="col-md-12">
<form action="" method="POST">
{% csrf_token %}
<fieldset>
<legend><span class="name">{% trans 'Select an APP' %}</span></legend>
{{ form.app_list }}
</fieldset>
</form>
</div>
И мой файл views.py:
class ManageDocView(AdminRequiredMixin, View):
""" Render the Admin Manage documents to update year in the filename"""
template_name = 'app/manage_doc_form.html'
form_class = ManageDocForm
success_url = 'app/manage_doc_form.html'
@staticmethod
def get_title():
return 'Change Document Title'
def get(self, request):
form = self.form_class()
context = {
"form": form,
"title": self.get_title()
}
return render(request, self.template_name, context)
def post(self, request):
form = self.form_class()
query_document_updated = None
query_app = None
query_document = None
app_list = request.POST['app_list']
query_app = App.objects.get(id=app_list)
query_document = Document.objects.filter(app=app_list)
context = {
'form': form,
'query_app': query_app,
'query_document': query_document,
'title': self.get_title()
}
return render(request, self.template_name, context)
Когда я выбираю приложение в своем списке, оно не отправляет значение и не обновляет страницу?
Существует проблема между моими widget
и ModelSelect2widget
?