Angular 8 таблиц данных с django структурой отдыха - PullRequest
0 голосов
/ 11 марта 2020

Я должен использовать angular 8 таблиц данных с django каркасом отдыха. Я написал серверный код, который возвращает успокоительный API. Любая помощь в написании кода angular на стороне сервера будет очень полезна. Я попытался с помощью документации, она не работает. Вот код остальной структуры

class DataTableListCreateAPIView(ListCreateAPIView):
    pagination_class = DataTablePagination
    search_parameters = ()
    default_order_by = ''
    unfiltered_query_set = None
    def get_queryset(self):
        self.unfiltered_query_set = query_set = super(DataTableListCreateAPIView, self).get_queryset()
        order_by_index = int(self.request.query_params.get('order[0][column]',0))
        orderable = bool(self.request.query_params.get('columns[{}][orderable]'.format(order_by_index), self.default_order_by).replace('.','__'))
        if order_by_index == 0 or not orderable:
            order_by_index = 1
        order_by = self.request.query_params.get('columns[{}][data]'.format(order_by_index), self.default_order_by).replace('.','__')
        order_by_dir = self.request.query_params.get('order[0][dir]','asc')
        if order_by_dir == 'desc':
            order_by = '-{}'.format(order_by)
        search_queries = self.request.query_params.get('search[value]','').strip().split(' ')
        q = Q()
        if len(search_queries) > 0 and search_queries[0] != u'':
            for params in self.search_parameters:
                for query in search_queries:
                    temp = {
                        '{}__contains'.format(params):query,
                    }
                    q |= Q(**temp)
        query_set = query_set.filter(q)
        if order_by == '':
            return query_set
        return query_set.order_by(order_by)
    def get(self,request,*args,**kwargs):
        result = super(DataTableListCreateAPIView, self).get(request,*args,*kwargs)
        result.data['draw'] = int(request.query_params.get('draw',0))
        result.data['recordsFiltered'] = result.data['count']
        result.data['recordsTotal'] = self.unfiltered_query_set.count()
        del result.data['count']
        result.data['data'] = result.data['results']
        del result.data['results']
        return result
class ReligionDataTableView(DataTableListCreateAPIView):
    serializer_class = ReligionSerializer
    search_parameters = ('name',)
    default_order_by = 'name'
    queryset = Religion.objects.all()

, который возвращает следующий результат {"next":null,"previous":null,"draw":0,"recordsFiltered":10,"recordsTotal":10,"data":[{"id":5,"name":"Christian","created_date":"2020-02-09T03:13:11.892478Z","staff":null},{"id":1,"name":"Christian union","created_date":"2019-12-14T01:36:35.384599Z","staff":null},{"id":6,"name":"Jewish","created_date":"2020-02-09T03:13:29.611206Z","staff":null},{"id":4,"name":"Seventh Day Adventist","created_date":"2019-12-18T05:58:31.359246Z","staff":null},{"id":3,"name":"Seventh Day Adventist","created_date":"2019-12-14T01:52:52.485440Z","staff":null},{"id":8,"name":"Seventh day","created_date":"2020-03-08T01:45:57.534001Z","staff":null},{"id":7,"name":"YCS","created_date":"2020-03-08T01:44:46.555526Z","staff":null},{"id":2,"name":"Young Christian Association","created_date":"2019-12-14T01:36:54.039418Z","staff":null},{"id":12,"name":"ghdsghdsghsd","created_date":"2020-03-08T13:45:09.238152Z","staff":3},{"id":10,"name":"hhdhshjds","created_date":"2020-03-08T13:44:57.133368Z","staff":3}]} Я пытался написать следующий angular front, но не работает

ngOnInit(): void {
    const that = this;
     this.faithService.getReligionList();
    //DATATABLES OPTIONS
    //this.getReligion();
    this.dtOptions = {
      pagingType: 'full_numbers',
      pageLength: 100,
      serverSide: true,
      processing: true,
      ajax: (dataTablesParameters: any, callback) => {
        this.http.post<DataTablesResponse>(environment.rootUrl + 'religion-list/', dataTablesParameters, {}).subscribe(resp => {
          console.log(resp);
          that.religions = resp.data
          callback({
            recordsTotal: resp.recordsTotal,
            recordsFiltered: resp.recordsFiltered,
            data: []
          });
        });
      },
      columns: [{ data: 'name' }]

    }
  }

Любая помощь по написанию интерфейс, который будет подключаться к этому API на стороне сервера?

...