Виджет формы Django: отправить на обмен - PullRequest
0 голосов
/ 30 октября 2018

У меня есть форма 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?

...