python函数myproduct_Django:get_object_or_404不是正确的解决方案,但它是什么?

我正在努力找到正确的解决方案,我正在努力做到这一点,并且非常感谢一些帮助.

目前,我有一个工作系统,它从数据库中获取“特殊”并在浏览器中显示它.用户可以在浏览器中编辑“特殊”并将其提交给数据库.然后向用户显示该更改.

问题是如果数据库中没有预先存在的“特殊”,则“特殊”将不会更新.在我的views.py中,我有:

def changeSpecialOffer(theRequest):

myProductUuid = theRequest.POST['myProductUuid']

myNewSpecialOffer = theRequest.POST['myNewSpecialOffer']

myProduct = get_object_or_404(Product, uuid=myProductUuid)

myActiveSpecial = get_object_or_404(SpecialOffer.objects.filter(product=myProduct).filter(

active=True))

try:

myActiveSpecial.special = myNewSpecialOffer

myActiveSpecial.save()

except:

return HttpResponse(myActiveSpecial, mimetype='text/plain')

myActiveSpecial = SpecialOffer.objects.filter(product=myProduct).filter(

active=True)

return HttpResponse(myActiveSpecial, mimetype='text/plain')

我知道更新“特殊”不起作用的原因是因为get_object_or_404正确地返回404错误,因为db中没有预先存在的“特殊”.

我已经尝试了一段时间来找出解决这个问题的最佳方法,而不会破坏数据库中存在“特殊”的情况下的功能.

到目前为止,我已尝试用try和except替换get_object_or_404,但我遇到了save函数的问题,例如’unicode’没有属性’save()’.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值