0

テンプレートでデータを取得する必要があります。

私は ajax リクエストを持っています:

$(".retailer-list-img").mouseover(function () {
    var $this = $(this);
    var category_id = $this.attr('id');
    $.ajax({
        'url': '/shop/getfeatured/',
        'method': 'POST',
        'data': {'category_id': category_id,},
        'success': function(response){
             console.log(response)
         }
    });
});

ビュー.py

def MerchantGetfeaturedView(request):
    featured = Merchant.objects.filter(
        is_catalog_active=1,
        is_active=1,
        category_id=request.REQUEST.get('category_id'),
        date_deleted__isnull=True
    ).select_related('_image')

    featured = serializers.serialize('json', featured)

    return HttpResponse(featured, content_type="application/json")

しかし、関連するオブジェクト「画像」はありませんか?関連モデルをシリアル化するには? ありがとう。

4

1 に答える 1

0

まず、オブジェクトを変換する必要があります。

result = { 'is_catalog_active': featured['is_catalog_active']
           'is_active': 1,
           'category_id': int(request.REQUEST.get('category_id')),
           'image_id' : _image.id,
           'image_name': _image.name 
         }

PyCharm を使用して、関連するモデル フィールドをオートコンプリートすることができます。適切なツールを持っている場合、ランダムな推測は時々悪いです。または、さらに調査するために django ドキュメントを確認してください。

次に、$.ajax() 関数には fail コールバックがないため、パターンは完全ではありません。実際には、ユーザーはフロントエンドのフィードバックを知る必要があります。たとえば、どのタイプのエラーか。

于 2016-05-19T13:11:00.320 に答える