2016-05-22 1 views
1

Привет У меня есть следующие ресурсы внутри файла respurces.py.Как найти вложенные значения в ресурсах (tastypie json)

class SodResource(ModelResource): 

    class Meta: 
     queryset = Sod.objects.all().order_by('-rank') 
     filtering = {'sod_type': ALL, 'generic_value': ALL} 


class DeptBpResource(ModelResource): 
    sod_setting = fields.ToManyField(SodResource, 'sod', null=True, full=True) 

    class Meta: 
     queryset = Dept_Bp.objects.all() 
     filtering = { 
       'dept_name': ALL, 
       'bp_name': ALL, 
      } 

Я могу найти http://10.85.87.116:8000/fmea/api/v1/deptbp/?format=json&dept_name=DEQP&bp_name=Kaizen. Но моя цель - также возможность поиска sod_type (что из приведенного выше ресурса). Но когда я ищу, как http://10.85.87.116:8000/fmea/api/v1/deptbp/?format=json&dept_name=DEQP&bp_name=Kaizen&sod_type=1 Его просто возвращающее то же значение, что и http://10.85.87.116:8000/fmea/api/v1/deptbp/?format=json&dept_name=DEQP&bp_name=Kaizen, не сужая мой поиск. Немного нова к ресурсам или tastypie. Что случилось, ребята? Есть идеи? Заранее спасибо.

ответ

1

Попробуйте это:

class SodResource(ModelResource): 

    class Meta: 
     queryset = Sod.objects.all().order_by('-rank') 
     filtering = {'sod_type': ALL, 'generic_value': ALL} 


class DeptBpResource(ModelResource): 
    sod_setting = fields.ToManyField(SodResource, 'sod', null=True, full=True) 

    class Meta: 
     queryset = Dept_Bp.objects.all() 
     filtering = { 
      'dept_name': ALL, 
      'bp_name': ALL, 
      'sod_setting': ALL_WITH_RELATIONS 
     } 

На вашем URL. Вы можете сделать так:

http://10.85.87.116:8000/fmea/api/v1/deptbp/?format=json&dept_name=DEQP&bp_name=Kaizen&sod_setting__type=1 
+0

не работал должным образом – vellattukudy