如果form.is_valid()不起作用,则在views.py中应用迁移

时间:2018-03-17 12:38:02

标签: django django-views django-migrations

如果提交的表单有效,我尝试运行迁移,但在首次提交表单后未检测到迁移。但是,如果我再次提交有效表单,则以前提交的迁移会正常运行。

我也尝试过request_finished信号,但行为完全相同。

如果我实施额外的表单来运行run_migrations视图,则迁移会成功运行,但是如果在首次提交表单后快速提交此额外表单,则迁移不会运行。

我相信我的run_migrations代码在完成POST请求之前以某种方式运行。

views.py

def factory(request):

    factory_form = FactoryForm(request.POST or None)

    if factory_form.is_valid():

        # Here I change models.py via python file handling

        return HttpResponseRedirect(reverse('factory:run_migrations'))


    context = {
        'factory_form': factory_form
    }

    return render(request, 'factory/factory.html', context)

def run_migrations(request):
    from django.core import management
    management.call_command('makemigrations')
    management.call_command('migrate')

    return HttpResponseRedirect(reverse('factory:factory'))

0 个答案:

没有答案