代码之家  ›  专栏  ›  技术社区  ›  Miguel Herreros Cejas

使用Vue.js、Axios和Django筛选对象

  •  0
  • Miguel Herreros Cejas  · 技术社区  · 7 年前

    我有一个Vue.js和Django的项目。我试图通过简单的搜索从数据库中获取一个列表。在Vue/Axios中,我有:

      var food = 'CHICKEN'
      const url = `${API_URL}/api/list_food_composition/${food}`;
      axios.get(url).then(response => {
      var data = response.data;
      console.log(data)
      });
    

    但答案是“未定义的”

    在Django,我有:

    url.py

    url(r'^api/list_food_composition/$', views.list_food_composition),
    

    views.py

    def list_food_composition(request,food):
        foods = Food_composition.objects.filter(short_description__contains=food)
        data = serializers.serialize('json', foods)
        return HttpResponse(data, content_type='application/json')
    

    正确的做法是什么?

    1 回复  |  直到 7 年前
        1
  •  2
  •   ruddra    7 年前

    请按如下方式更新您的视图:

    from django.http import JsonResponse
    
    def list_food_composition(request,food):
         foods = Food_composition.objects.filter(short_description__contains=food)
         data = serializers.serialize('json', foods)
         return JsonResponse({'data': data}, content_type='application/json')
    

    统一资源定位地址 应该是:

    url(r'^api/list_food_composition/(?P<food>\w+)$', views.list_food_composition),