我正在努力为我在这里尝试做的事情找出正确的解决方案,并且非常感谢一些帮助。
目前,我有一个工作系统,它从数据库中获取“特殊”并将其显示在浏览器中。用户可以在浏览器中编辑该“特殊”并将其提交到数据库。然后将该更改显示给用户。
问题是如果数据库中没有预先存在的“特殊”,则“特殊”将不会更新。在我的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 错误。
在数据库中存在现有“特殊”的情况下,我一直在尝试找出解决此问题的最佳方法,而不会破坏该功能。
到目前为止,我已经尝试用 and 替换get_object_or_404
,try
但是except
我遇到了保存功能的问题,例如'unicode' has no attribute 'save()'
.