我试图使用AJAX调用视图,但有一个问题。我有一个submit的令牌,调用Django视图的函数正在工作,我遵循了这个链接的所有说明:https://realpython.com/blog/python/django-and-ajax-form-submissions/,但是在控制台中我得到了以下错误:
500: DoesNotExist at /Buscar/Producto/
InventarioProducto matching query does not exist.
/Buscar/Producto/是连接到视图的URL,这是有效的,我认为这不是问题所在。在
导入模型后,我在Django shell中尝试了以下操作:
^{pr2}$在shell中,如果我打印保存了查询集的变量,我可以看到结果,所以我不知道为什么这在视图上不起作用。在
9786071411532是MySQL数据库中存在的一个产品代码,它保存在一个名为codigo_producto的列中,它与producto模型中保存的字段同名,实际上是一个主键。在
解释模型: InventarioProducto有一个字段是Producto的foreigin键。InventarioProducto模型中的字段名为producto_codigo_producto,producto的主键称为codigo_producto。所以producto_codigo_producto是指codigo_producto。 模型Precio具有与模型InventarioProducto中使用的名称相同的外键,因此它们的工作方式相同。在
我还确保我请求的所有数据都真实存在。在
以下是视图:
def BuscarProducto(request):
if request.method == 'POST':
txt_codigo_producto = request.POST.get('id_codigo_producto')
response_data = {}
resp_producto=Producto.objects.filter(codigo_producto=txt_codigo_producto)
resp_inventario=InventarioProducto.objects.get(producto_codigo_producto__in=resp_producto)
resp_precio=Precio.objects.filter(producto_codigo_producto__in=resp_producto,estado_precio='1').order_by('-idprecio')[:1]
response_data['result'] = 'Create post successful!'
response_data['codigoproducto'] = resp_producto.codigoproducto
response_data['lote'] = resp_inventario.idinventario_producto
response_data['descripcion_producto'] = resp_producto.descripcion_producto
response_data['precio'] = resp_precio.valor_precio
return HttpResponse(
json.dumps(response_data),
content_type="application/json"
)
else:
return HttpResponse(
json.dumps({"nothing to see": "this isn't happening"}),
content_type="application/json"
)
我已将已解决的文本移到一个答案:
我改了这个:
为此:
^{pr2}$相关问题 更多 >
编程相关推荐