1

1 回の Tastypie API 呼び出しから複数のリソースを照会して、結果を一連の結果として返すことはできUNIONますか?

ユーザーに名前または従業員 IDinputを入力するように求める単一のフィールドがあります。可能であれば、フィールドを 2 つに分割することは避けたいと思います。入力の負担をユーザーではなくシステムに負わせたいと考えています。

2 つの異なるリソースからデータを取得したいと考えています。Aは、会社で働いていない人またはゲストでPersonある可能性があります。Employeeアン それEmployeeだけです。

class EmployeeResource(ModelResource):
    '''
    Resource of all company employees
    '''
    class Meta:
        filtering = {
            "empid": ['exact', 'startswith']
        }
        resource_name = 'employee'
        queryset = Employee.objects.all()

class PersonResource(ModelResource):
    '''
    Resource of employees and guests who have visited the lab
    '''
    employee = fields.ForeignKey(EmployeeResource, 'empid', blank=True, null=True, full=True)

    class Meta:
        resource_name = 'person'
        queryset = Person.objects.all()
        filtering = {
            "name": ['icontains'],
            "employee": ALL_WITH_RELATIONS
        }

両方のテーブルから値を取得し、重複を無視する Tastypie リソース クエリを設定したいと考えています。

たとえば、「Doe」をクエリすると、3 つのレコードが抽出されます。

  • から引き抜かれた非従業員の Jane Doe PersonResource
  • soに存在しない従業員の John DoePersonResourceが から引き抜かれEmployeeResourceます。
  • そこに存在する従業員であるハンク・ドウPersonResourceがそこから引き抜かれます。

以前、これを Django モデルから直接実行し、2 つの個別の呼び出しを作成してから、それらを単純なループで結合しました。私は今、呼び出しを介して AngularJS からクエリを作成しようとしています$httpが、1 回の呼び出しでそれを実行したいと考えています。

$httpTastypie に1 つのリクエストを送信して、2 つのリソースから取得するにはどうすればよいですか?

4

0 に答える 0