python-3.x - 如何解决赋值前引用的局部变量并正确返回模板中的表单数据?
问题描述
我想返回模板中表单中输入的项目代码和项目编号。这是一个非常简单的应用程序。
视图.py
def index(request):
csv_form = ''
if request.method == 'POST':
csv_form = CsvForm(request.POST, request.FILES)
if csv_form.is_valid():
csv_itemcode= csv_form.cleaned_data['item_code']
csv_itemnumber= csv_form.cleaned_data['item_number']
else:
csv_form = CsvForm()
context = {'csv_itemcode': csv_itemcode, 'csv_itemnumber': csv_itemnumber,'csv_form':csv_form}
return render(request,'colorlib-regform-6/submit.html',context)
提交.html
<html>
<body>
<h4>{{ csv_itemcode }}</h4>
<h4>{{ csv_itemnumber }}</h4>
</body>
</html>
我在分配之前引用了局部变量 csv_itemcode。对此有任何建议。
解决方案
您的变量csv_itemcode
在您的模板中使用,但尚未分配任何值,因此换句话说它不存在。为了解决这个问题,您可以使用 None 或其他一些适当的默认值对其进行初始化。因此,您的另一个变量会出现类似的问题csv_itemnumber
。
如果您不想显示变量,直到它被分配一个值,那么您可以使用类似的东西
{% if csv_itemcode != None and csv_itemnumber != None %}
<h4>{{ csv_itemcode }}</h4>
<h4>{{ csv_itemnumber }}</h4>
{% else %}
<h4>Some Default Text</h4>
{% endif %}
请记住将变量初始化为 None 以使其正常工作。您可以选择一些其他适当的默认值,然后只需更改
{% if csv_itemcode != None and csv_itemnumber != None %}
相应地声明。
推荐阅读
- python - Python3:记录没有被推送到 Splunk
- python - 使用 ctypes 指定结果类型时,从 python 调用外部库返回错误结果
- python - 将行透视到列级别
- json - OANDA API 定价流
- javascript - 无法将对象推送到nodejs中的数组
- python - 在 seaborn 箱线图中隐藏未观察到的类别
- flutter - 颤动条纹stripe_payment:类路径
- visual-studio - 不能让 CMake 属性 ADDITIONAL_CLEAN_FILES 删除一个简单的文件
- apache - Is there a way to redirect one directory as a root and its siblings as sub directories only via Apache2.4 mod_rewrite?
- reactjs - 我可以使用 React 中的函数提供上下文值吗?