我正在努力找到正确的解决方案,我正在努力做到这一点,并且非常感谢一些帮助.
目前,我有一个工作系统,它从数据库中获取“特殊”并在浏览器中显示它.用户可以在浏览器中编辑“特殊”并将其提交给数据库.然后向用户显示该更改.
问题是如果数据库中没有预先存在的“特殊”,则“特殊”将不会更新.在我的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()’.