尽管正确更新了django模型,但POST数据并不总是符合我的逻辑
def new_record(request):
form = RecordForm(request.POST or None)
if request.method == 'POST':
if form.is_valid():
form.save()
return HttpResponseRedirect('/new_record')
else:
form = RecordForm()
item1 = request.POST.getlist('checkbox_1')
item2 = request.POST.getlist('checkbox_2')
item3 = request.POST.getlist('checkbox_3')
print(item1)
print(item2)
print(item3)
if 'on' in item1:
print("Checkbox 1 is true")
write_pdf_view(textobject='textobject', exam_record_number='123')
else:
print("Checkbox 1 is False")
if 'on' in item2:
print("Checkbox 2 is true")
else:
print("Checkbox 2 is False")
if 'on' in item3:
print("Checkbox 3 is true")
else:
print("Checkbox 3 is False")
return render(request=request,
template_name='main/new_record.html',
context={"form": form}
)
我希望做的基本上是检查是否已选中一个复选框,如果为true,则将值传递给函数,现在我已经将y write_pdf_view值固定为我知道的存在的值,并且也不起作用(我是在上面导入的)
我觉得这对有经验的人来说可能是微不足道的,我是一个新的业余爱好者,只想学习!任何帮助表示赞赏。
答案 0 :(得分:0)
您的if语句在GET而不是POST期间执行。
我建议使用基于类的视图结构来构造代码,如下所示:
from django.views import View
class NewRecord(View):
def get(self, request):
return render(request, 'main/new_record.html', {'form': RecordForm})
def post(self, request):
form = RecordForm(request.POST)
if form.is_valid():
form.save()
item1 = request.POST.get('checkbox_1', None)
##place the rest of your logic here
return HttpResponseRedirect('/new_record')