简体   繁体   English

Django-不发布带有清晰表格和数据表的表格

[英]Django - Not posting form with crispy form and datatables

I'm having trouble posting from a crispy form to my database. 我在从松脆的表单发布到我的数据库时遇到麻烦。 Below is from my views.py. 下面是我的views.py。 Any help would be awesome! 任何帮助都是极好的!

class CustomerView(XEditableDatatableView):
        template_name = "customers.html"
        model = Customer
        #datatable
        datatable_options = {
            'columns': [
                        ("Title", 'Title'),
                        ("Name", 'PoC', helpers.make_xeditable),
                        ("Email", 'PoCEmail', helpers.make_xeditable),
                        ("Location", 'Location', helpers.make_xeditable),
                        ("Date Added", 'DateAdded', helpers.make_xeditable),
                        ],
            'hidden_columns': ['ID'],
                            }

    #crispy form
    def get_context_data(self, **kwargs):
        context = super(CustomerView, self).get_context_data(**kwargs)
        customer_form = CustomersForm()
        context['customer_form'] = customer_form
        return context

    #posting form
    def post(self, request, *args, **kwargs):
        if self.request.method == 'POST':
            customer_form = CustomersForm(self.request.POST)
            if customer_form.is_valid():
                return HttpResponseRedirect(reverse('customerview'))
        else:
            customer_form = CustomersForm()
        return HttpResponseRedirect(reverse('customerview'))

Thanks for all the help! 感谢您的所有帮助!

form.is_valid() only validate the form - then you have to use your validated data somehow. form.is_valid()仅验证表单-然后您必须以某种方式使用经过验证的数据。 If CustomerForm is a ModelForm , you just have to call the .save() method: 如果CustomerFormModelForm ,则只需调用.save()方法:

        if customer_form.is_valid():
            customer_form.save()
            return HttpResponseRedirect(reverse('customerview'))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM