Django Web应用程序未重定向和不发布

问题描述 投票:0回答:1

我按提交按钮时不确定问题出在哪里,它没有显示任何错误。应该使用填写的表格来更新数据库,然后将它们重定向回“搜索”页面(option.html)。

models.py:

OptionChoice = (
    ('A','A'),
    ('B','B'),
    ('C','C'),
    )

class OptionPlan(models.Model):
    option = models.CharField(max_length=200, choices=OptionChoice, default="DEFAULT", blank=True)
    ...
    updated = models.DateField(max_length=20, null=True)
    updatedBy = models.CharField(max_length=10, null=True)

urls.py:

app_name = 'Benefits'

urlpatterns = [
    path('simple_upload', views.simple_upload, name='simple_upload'),
    #path('search', views.search, name='search'),
    path('search/', FilterView.as_view(filterset_class=BenefitsFilter, template_name='Benefits/option.html'), name='search'),
    path('OptionUpdate/<int:id>', views.OptionUpdate.as_view(), name='OptionUpdate')
    ]

views.py:

def search(request):
    option = OptionPlan.objects.get_queryset()
    option_filter = BenefitsFilter(request.GET, queryset=option)

    return render(request, 'Benefits/option.html', {'filter':option_filter})

class OptionUpdate(UpdateView):
    model = OptionPlan

    fields =[
        'option',
        ...
        'cb_updatedBy',
        'cb_updated',
        ]

    template_name = 'Benefits/OptionUpdate.html'
    slug_field = 'id'
    slug_url_kwarg = 'id'

    def form_valid(self, request, obj, form, change):
        OptionPlan = form.save(commit=False)
        if OptionPlan.option and 'option' in form.changed_data:
            OptionPlan.updatedBy = str(self.request.user)
            OptionPlan.updated = timezone.localtime(timezone.now())
        OptionPlan.save()
        return redirect('Benefits:search')

optionUpdate.html:

{% if user.is_authenticated %}

    <div style="margin-left:100px;margin-right:100px;">
        <form method="POST">
            <div class="row">
                <div class="col">
                    <h2 class="alert alert-primary">...</h2>

                    {% csrf_token %}
                    <div class="row">
                        <div class="col-4" style="font-size:30px;">
                            {{ form.option|as_crispy_field }}
                        </div>
                    </div>
                    ...

                <div class="col">
                    <h2 class="alert alert-success">...</h2>
                      ...
                    <div class="col" style="font-size:30px;">
                        {{ form.cb_remarks|as_crispy_field }}
                    </div>
                </div>
                <button type="submit" class="btn btn-primary btn-block">2020 Option Form Update</button>
            </div>
        </form>    
     </div>
{% else %}

非常感谢您的帮助!

编辑:

enter image description here

django django-forms django-views django-2.0
1个回答
0
投票

如果我假设,表单会抛出某种类型的错误,您不会打印或处理。尝试检查是否存在任何表单错误。

© www.soinside.com 2019 - 2024. All rights reserved.