【问题标题】:NOT NULL constraint failed: shop_review.item_idNOT NULL 约束失败:shop_review.item_id
【发布时间】:2021-03-20 18:42:23
【问题描述】:
def order(request, item_id):
item = get_object_or_404(Item, pk=item_id)
if request.method == "POST":
    username = None
    username = request.user.username
    userInfo = username + '/' + request.POST["nameNum"]
    userAddr = request.POST["address"]
    new_order = Review.objects.create(
        reviewText = userInfo,
        votes = userAddr
    )
    return HttpResponse("<script>alert('" + userInfo + '/ ' + userAddr + "');</script> 등록 완료")
return render(request, 'order.html', {'item': item})

这是我的views.py,并且

class Item(models.Model):
def __str___(self):
    return self.item_name
item_name = models.CharField(max_length=100)
item_text = models.CharField(max_length=300)
pub_date = models.DateTimeField('date published')
item_amount = models.CharField(max_length=99999999)
item_image = models.ImageField(upload_to='image/', blank=True)
item_id = models.AutoField(primary_key=True)

这是我的models.py。

当我运行这部分时,NOT NULL constraint failed: shop_review.item_id

enter image description here

【问题讨论】:

    标签: python django database web server


    【解决方案1】:

    您正在创建的评论有 no 对其项目的引用,因此出现错误,您应该指定项目 ID:

    new_order = Review.objects.create(
        reviewText = userInfo,
        votes = userAddr,
        item_id=item_id
    )

    不过,使用Form [Django-doc] 来验证和清理数据可能是个好主意。现在不能保证request.POST 会包含address


    注意:如果 POST 请求成功,请发送redirect [Django-doc] 实施Post/Redirect/Get pattern [wiki]。 这样可以避免在用户刷新时发出相同的 POST 请求 浏览器。

    【讨论】:

      猜你喜欢
      • 2015-04-22
      • 2018-08-24
      • 2022-01-19
      • 2021-11-16
      • 2020-12-18
      • 2020-02-11
      • 2019-02-13
      • 2017-12-31
      • 2019-05-06
      相关资源
      最近更新 更多