【发布时间】:2017-01-12 01:29:41
【问题描述】:
假设我正在向用户显示一些数据,我希望用户能够使用 GET 表单对数据库中的数字字段执行某种过滤,所以我有这样的东西
code = request.GET.get('code')
condition = {}
if( code is not None and int(code) > 0 ):
condition['code'] = int(code)
Somemodel.objects.filter(**condition)
但这仅在我的代码包含数字时才有效,否则我会收到此错误
invalid literal for int() with base 10: ''
那么处理这个问题的pythonic方法是什么?我应该使用try/except 块吗?考虑到我可能会添加其他过滤器,我更喜欢在同一个 if 语句中处理这个问题
【问题讨论】:
-
有什么理由不使用 Django 的内置表单/验证来处理
request.GET吗?
标签: python django python-3.x django-1.9