Django:无法将空表单字段保存到数据库 - 以 10 为基数的 int() 的无效文字:''
Posted
技术标签:
【中文标题】Django:无法将空表单字段保存到数据库 - 以 10 为基数的 int() 的无效文字:\'\'【英文标题】:Django: Can't save empty form field to database - invalid literal for int() with base 10: ''Django:无法将空表单字段保存到数据库 - 以 10 为基数的 int() 的无效文字:'' 【发布时间】:2014-04-14 05:58:43 【问题描述】:很多人报告了这种类型的错误,但到目前为止,没有一个修复对我有用。我有一个模型,它有一个允许空值的 IntegerField:
def SomeModel(models.Model):
...
price_sell = models.IntegerField(null=True)
...
然后我有一个这样的表格:
class SomeForm(forms.Form):
...
price_sell = forms.IntegerField(required=False)
...
当将此字段留空并调用 save 方法时,我收到 invalid literal for int() with base 10: ''
错误。我尝试了很多与空白和空参数有关的事情,但到目前为止没有运气。
我的解决方案是这样做是我的views.py:
if form.is_valid():
if(request.POST['price_sell'] == ''):
price_sell = None
...
但我确信有一种更优雅的方法可以做到这一点。还是没有?
我正在使用 SQLite db 在 Windows 上运行 Django 1.6。
【问题讨论】:
@Charles 我对我的问题进行了编辑。 【参考方案1】:从表单中的cleaned_data 中获取数据。 IntegerField
会给你你想要的。 form.cleaned_data['price_sell']
【讨论】:
以上是关于Django:无法将空表单字段保存到数据库 - 以 10 为基数的 int() 的无效文字:''的主要内容,如果未能解决你的问题,请参考以下文章