2016-05-22 10 views
1

Hallo, ich habe die folgenden Ressourcen in respurces.py Datei.So suchen Sie nach geschachtelten Werten in Ressourcen (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, 
      } 

Ich kann http://10.85.87.116:8000/fmea/api/v1/deptbp/?format=json&dept_name=DEQP&bp_name=Kaizen suchen. Aber mein Ziel ist es, auch die sod_type (die von der oben genannten Ressource ist) zu suchen. Aber wenn ich suche als http://10.85.87.116:8000/fmea/api/v1/deptbp/?format=json&dept_name=DEQP&bp_name=Kaizen&sod_type=1 Es gibt nur den gleichen Wert wie http://10.85.87.116:8000/fmea/api/v1/deptbp/?format=json&dept_name=DEQP&bp_name=Kaizen nicht meine Suche eingrenzen. Bin ein bisschen neu zu Ressourcen oder tastypie. Was ist los hier Jungs? Irgendeine Idee? Danke im Voraus.

Antwort

1

Versuchen Sie folgendes:

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 
     } 

auf Ihrer URL. Sie können folgendermaßen vorgehen:

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

hat nicht wie erwartet funktioniert – vellattukudy