python - 字段留空时出错:以 10 为基数的 int() 的文字无效
问题描述
我正在数据库中保存一篇新文章。这是我使用的简化脚本:
class Article(models.Model):
name = models.CharField(max_length=255)
rating = models.PositiveSmallIntegerField(blank=True, null=True)
然后这是我尝试创建新记录的方法:
article = Article(
name = request.POST['name'],
rating = request.POST['rating'],
)
article.save()
然而,问题是评级并不总是固定的。该字段可以为空,所以没问题。但是,此时如果该字段为空,它会返回错误:int() 以 10 为底的无效文字。
我基本上想说:
- 如果设置了 POST['rating'],则使用它
- 如果不是,则该字段应为空。
我是 Python 新手,不知道如何实现这一点。
解决方案
最简单的方法是捕获错误,然后在 except 块中将值设置为 None。
try:
rating = int(request.POST['rating'])
except ValueError:
rating = None
article = Article(
name = request.POST['name'],
rating = rating,
)
article.save()
推荐阅读
- cassandra - 检索过去 24 小时的行
- .net - 如何使用我的 IP 地址作为应用程序 URL 为我的 .NET Core Web 应用程序创建 SSL 证书?
- python - 使用 Python 计算滚动保留
- r - 如何使用 R 从日/月/年日期格式中保留月/年
- javascript - 将点击事件函数应用于多个元素,包括 if/else
- python - Matplotlib 如何获取子图(轴)之间的间隙和空白距离
- python - Numpy 数组的 Windows 和 Ubuntu 之间的内存使用差异
- python - 获取pocketsphinx字符串
- android - 使用 expo 生成的 Apk 安装时不要求权限
- oauth-2.0 - JWT Same Application 是 Auth Server 和 Application Server