【问题标题】:multiple form handling Django python 3.x多表单处理 Django python 3.x
【发布时间】:2020-12-03 03:45:22
【问题描述】:

我想用两个输入表单制作简单的页面 第一个用于将数据发布到文件中 第二个用于从文件中获取索引和删除数据 他们俩都独立工作 但到目前为止,我只能使用第一种形式,就像第二种形式一样,它甚至没有达到第二种形式的任何一种方法都没有完成 代码如下:

###############
#Views.py

class HomeView(TemplateView):
    template_name = 'index/num.html'

    def get(self, request):
        form = AddForm()
        form2 = DeleteForm()
        result = printResult()
        return render(request, self.template_name, {'form': form, 'form2': form2,'result': result})

    def post(self, request):

        result = "result"

    ####____add option###################
        if request.method == 'POST':
            form = AddForm(request.POST)
            form2 = DeleteForm(request.POST)
            if form.is_valid():
                text = form.cleaned_data['post']
                if (re.match("[0-9]+", str(text))):
                    text = text
                else:
                    text= None

                result = addToFile(text)
                args = {'form': form, 'form2': form2, 'text': text, 'result': result }
                return render(request, self.template_name, args)
            ##########
        ###____Delete option#######
            if form2.is_valid():

                index = form2.cleaned_data['dell']
                result = DeleteIndexFromFile(index)
                args2 = {'form': form, 'form2': form2, 'text': index, 'result': result }

                return render(request, self.template_name, args2)

            ##########
#forms.py
from django import forms

class AddForm(forms.Form):
        post = forms.CharField(required = False)
class DeleteForm(forms.Form):
        delete = forms.IntegerField(required = False)

#num.html
<div class="container">
    <p>
        <form  method="post">
            {% csrf_token %}
            {{ form }}

            <button type="submit">Submit</button>
        </form>

        <form  method="delete" >
            {% csrf_token %}
            {{ form2 }}

            <button type="submit">Delete</button>
        </form>
    </p>
    <p>
    <h4>Data:  {{ text }}</h4>
    <h4>{{ result }}</h4>
    </p>
</div>

【问题讨论】:

    标签: python django web


    【解决方案1】:

    有一个名为 django-shapeshifter 的包用于执行此操作:

    https://github.com/kennethlove/django-shapeshifter

    为了全面披露,我是该项目的贡献者。

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 1970-01-01
      • 2018-01-07
      • 2021-05-31
      • 2020-05-07
      • 2016-10-21
      • 1970-01-01
      • 2015-07-04
      • 2021-02-02
      相关资源
      最近更新 更多