我正在数据库中保存新文章。这是我使用的简化脚本:
[[],[],[],[],[],[],[],[]]
然后是我尝试创建新记录的方法:
class Article(models.Model):
name = models.CharField(max_length=255)
rating = models.PositiveSmallIntegerField(blank=True, null=True)
但是,问题是评级并非始终设置。该字段可以为null,因此没有问题。但是,如果此字段现在为空,则返回错误:基数为10的int()的无效文字。
我想基本上说:
我是Python的新手,不确定如何实现此目标。
答案 0 :(得分:2)
最简单的方法是捕获错误,然后在除外块中将其值设置为None。
try:
rating = int(request.POST['rating'])
except ValueError:
rating = None
article = Article(
name = request.POST['name'],
rating = rating,
)
article.save()
答案 1 :(得分:1)
假设POST
是一本字典(我忘记了,已经有一段时间了),那么您可以使用以下内容将其一字排开:
rating = int(request.POST.get('rating', -1))
if rating == -1:
rating = None
或
try:
rating = int(request.POST['rating'])
except:
rating = None