Python 3.x 赋值前引用的局部变量x-Django
我必须从POST请求中获取数据值并将其写入Word文档。但我犯了个错误。我怎样才能解决这个问题Python 3.x 赋值前引用的局部变量x-Django,python-3.x,django,django-models,django-views,django-forms,Python 3.x,Django,Django Models,Django Views,Django Forms,我必须从POST请求中获取数据值并将其写入Word文档。但我犯了个错误。我怎样才能解决这个问题 def military_document(request): if request.method == 'POST': form = CreateMilitaryDocumentForm(request.POST, request.FILES, use_required_attribute=False) if form.is_valid():
def military_document(request):
if request.method == 'POST':
form = CreateMilitaryDocumentForm(request.POST, request.FILES, use_required_attribute=False)
if form.is_valid():
group_degree = request.POST.get('group_degree')
print(group_degree)
form.save()
messages.success(request, 'Added successfully !')
return HttpResponseRedirect('military_document')
else:
form = CreateMilitaryDocumentForm(use_required_attribute=False)
doc = DocxTemplate("../document.docx")
context = {
'form': form,
'group_degree': group_degree,
}
doc.render(context)
doc.save("generated_doc.docx")
return render(request, 'military_document.html', context)
我不确定你在doc.renderContext等中做了什么,如果你想在渲染中使用group_DEGRE,你需要在表单内部进行渲染。group_是否有效。我假设变量是group_DEGRE?@WillemVanOnsem,是的,先生。如果GET请求,你永远不会给group_DEGRE赋值,那么group_degree在上下文中应该是什么{ ... }@WillemVanOnsem,我很抱歉,先生,但是没有得到答案。如果request.method='POST',那么你将group_degree设置为request.POST.get'group_degree'。如果request.method不是'POST',那么你不会将group_degree设置为任何东西,但是你仍然尝试在上下文中使用它。你认为它有什么价值?伙计,你救了我的职业。比非常感谢你!!!
def military_document(request):
if request.method == 'POST':
form = CreateMilitaryDocumentForm(request.POST, request.FILES, use_required_attribute=False)
if form.is_valid():
group_degree = request.POST.get('group_degree')
print(group_degree)
form.save()
messages.success(request, 'Added successfully !')
doc = DocxTemplate("../document.docx")
context = {
'group_degree': group_degree,
}
doc.render(context)
doc.save("generated_doc.docx")
return render(request, 'military_document.html', context)
else:
form = CreateMilitaryDocumentForm(use_required_attribute=False)
return render(request, 'military_document.html', {'form': form})