代码之家  ›  专栏  ›  技术社区  ›  Essex

Django表单小部件:提交onchange

  •  1
  • Essex  · 技术社区  · 6 年前

    我有一个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>
    

    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 ?

    0 回复  |  直到 6 年前
    推荐文章