首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取列'is_routed‘不能是空错误。即使在数据库中将其设置为default=0

获取列'is_routed‘不能是空错误。即使在数据库中将其设置为default=0
EN

Stack Overflow用户
提问于 2021-05-31 04:28:41
回答 2查看 109关注 0票数 0

我使用ORM将一些值插入到数据库表中。

以下是我正在做的事情:

代码语言:javascript
复制
placeorder_userorder=UserOrder(order_status='Processing',listing_id=all_response[0],actual_cost=total_original_prize,order_total=total_final_prize,total_without_dc=total_original_prize,
                               discount=total_final_discount,gst=all_response[0]['gst'], ,auto_invoice_index=0)

placeorder_userorder.save()

Model.py:

代码语言:javascript
复制
class UserOrder(models.Model):
    order_id = models.AutoField(primary_key=True)
    invoice_no = models.CharField(max_length=50)
    auto_invoice_no = models.CharField(max_length=200, blank=True, null=True)
    auto_invoice_index = models.IntegerField()
    is_routed = models.IntegerField()
    ...
    
    class Meta:
        managed = False
        db_table = 'user_order'

is_routed设置为默认的0 (以及许多其他列)。因此,当添加新行时,我不会将is_routed作为参数传递,而是创建UserOrder的实例,因为它应该是0

但是我发现了一个错误:

代码语言:javascript
复制
django.db.utils.IntegrityError: (1048, "Column 'is_routed' cannot be null")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-31 06:09:44

将您的模型更新为

代码语言:javascript
复制
class UserOrder(models.Model):
    order_id = models.AutoField(primary_key=True)
    invoice_no = models.CharField(max_length=50)
    auto_invoice_no = models.CharField(max_length=200, blank=True, null=True)
    auto_invoice_index = models.IntegerField()
    is_routed = models.IntegerField(default=0)
    ...
    
    class Meta:
        managed = False
        db_table = 'user_order'
票数 1
EN

Stack Overflow用户

发布于 2021-05-31 05:32:31

is_routed应该是一个布尔字段。

应该是这样的-

is_routed = models.BooleanField(default=False, blank=False, null=False)

在我看来其余的事情都很完美。现在一定成功了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67767921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档