如果提交的表单有效,我尝试运行迁移,但在首次提交表单后未检测到迁移。但是,如果我再次提交有效表单,则以前提交的迁移会正常运行。
我也尝试过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'))