对于带有基数为10的int(),我得到错误无效的文字:'1,303'并且它显示出错的打击代码。旧数据工作正常,它只是我添加到数据库的新东西。有什么想法吗?
def get(self, request, *args, **kwargs):
cart = self.get_object()
item_id = request.GET.get("item")
delete_item = request.GET.get("delete", False)
flash_message = ""
item_added = False
if item_id:
item_instance = get_object_or_404(Variation, id=item_id) ...
qty = request.GET.get("qty", 1)
try:
if int(qty) < 1:
delete_item = True
except:
raise Http404
答案 0 :(得分:1)
这就是您应该使用django表单而不是直接从request.GET
或request.POST
提取数据的原因。 Django表单为您提供数据验证,帮助您避免此类事情。问题是额外的&#39;&#39;在你想要的int。
int('1,303')
会产生上述错误。以下不会:
int('1,303'.replace(',',''))
因此,明显的补救措施是通过这样的过滤器传递你的int。
item_instance = get_object_or_404(Variation, id=int(item_id.replace(',',''))