2016-07-20 6 views
0

AJAXを使用してビューを呼び出そうとしていますが、問題があります。 https://realpython.com/blog/python/django-and-ajax-form-submissions/が、コンソールに、私は次のエラーを取得:DBango ORMでクエリーセット結果を使用して他のクエリーセットをフィルタリングする方法は?

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

/Buscar/Productoを私は、このリンクのすべての指示に従っ、Djangoのビューに呼び出す機能が働いている、提出のためのトークンを持っています/はビューに接続された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] 

、私は変数は、私はクエリセットを保存して印刷する場合、私は結果を見ることができますので、私はしないでください。

モデルをインポートした後、私は、Djangoのシェルで、次を試してみましたこれがビュー上で動作していない理由を知ってください。

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" 
     ) 

答えて

0

私はこの変更:これに

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

resp_inventario=InventarioProducto.objects.filter(producto_codigo_producto__in=resp_producto) 
をここで

は図であります
関連する問題