2016-07-20 2 views
0

AJAX를 사용하여보기를 호출하려고하는데 문제가 있습니다. 내가 제출에 대한 토큰, 나는이 링크의 모든 지시에 따라보기가 작동 장고 호출 기능이 있습니다 https://realpython.com/blog/python/django-and-ajax-form-submissions/을하지만, 콘솔에서 나는 다음과 같은 오류 얻을 :queryset 결과를 사용하여 DJango ORM에서 다른 쿼리 세트를 필터링하는 방법?

500: DoesNotExist at /Buscar/Producto/ 
InventarioProducto matching query does not exist. 

/Buscar/Producto을/URL이보기에 연결되어 있습니다. 문제가 아닌 것 같습니다. 쉘에서

resp_producto=Producto.objects.filter(codigo_producto=9786071411532) 
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] 

, 내가 변수 내가 검색어 세트를 저장했다 인쇄하는 경우, 나는 결과를 볼 수 있습니다, 그래서 내가하지 않습니다 :

모델을 가져온 후, 나는 장고 쉘에서 다음을 시도 이것이 왜보기에서 작동하지 않는지를 아십시오.

9786071411532는 MySQL 데이터베이스에있는 제품 코드로 codigo_producto라는 이름의 열에 저장됩니다.이 코드는 Product 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" 
     ) 

답변

0

:

나는이 변경 : 여기에

resp_inventario=InventarioProducto.objects.get(producto_codigo_producto__in=resp_producto) 

:

resp_inventario=InventarioProducto.objects.filter(producto_codigo_producto__in=resp_producto) 
을 여기

은이다
관련 문제