Python 如何从post请求函数django视图中检索值。DRF

Python 如何从post请求函数django视图中检索值。DRF,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有一个函数,可以在发布来自前端的数据时进行查询集。 此视图集正在使用组合模型的序列化程序 在前面的索引页上,我有一个树状视图过滤器,该视图将查询加载到 配置页面。我需要在将此查询传递给后端上的单独任务进行轮询后访问事件id 但是,我无法访问此函数中的数据。如何检索此查询并对数据进行筛选?现在我无法打印queryset以查看其结构 编辑: 我现在可以看到响应有效载荷,结构如下 [{"id":395,"event":{"id":175,&

我有一个函数,可以在发布来自前端的数据时进行查询集。 此视图集正在使用组合模型的序列化程序

在前面的索引页上,我有一个树状视图过滤器,该视图将查询加载到 配置页面。我需要在将此查询传递给后端上的单独任务进行轮询后访问事件id

但是,我无法访问此函数中的数据。如何检索此查询并对数据进行筛选?现在我无法打印queryset以查看其结构

编辑:

我现在可以看到响应有效载荷,结构如下

[{"id":395,"event":{"id":175,"start_time":"28-10-20","sport_id":"9","event_id":"1576232279920003","event_name":"Botic Van de Zandschulp vs Benjamin Bonzi","status":"open"},"market":{"id":198,"market_id":"1576232286670003","market_name":"Moneyline","status":"open","volume":50.4951,"is_ip":"False","event":175},"bettriggers":null,"stakes":null,"userstakes":null,"order":null,"runner_id":"1576232286740003","name":"Botic Van de Zandschulp","back_odds":1.62893,"lay_odds":1.68028},{"id":396,"event":{"id":175,"start_time":"28-10-20","sport_id":"9","event_id":"1576232279920003","event_name":"Botic Van de Zandschulp vs Benjamin Bonzi","status":"open"},"market":{"id":198,"market_id":"1576232286670003","market_name":"Moneyline","status":"open","volume":50.4951,"is_ip":"False","event":175},"bettriggers":null,"stakes":null,"userstakes":null,"order":null,"runner_id":"1576232286780103","name":"Benjamin Bonzi","back_odds":2.47,"lay_odds":2.59}]

class CombinedViewSet(mixins.ListModelMixin, 
                   mixins.DestroyModelMixin,
                   mixins.RetrieveModelMixin,
                   viewsets.GenericViewSet):

    permission_classes = [IsMeOrReadOnly]
    queryset = Runner.objects.all()
    serializer_class = CombinedSerializer

    @action(detail=False, methods=['POST','GET])
    def loaditem(self, request):
        keys = request.data['keys']
        queryset = []
        for xx in keys:
            if xx['time_key'] is None:
                if xx['event_key'] is None:
                    queryset.extend(Runner.objects.filter(event__sport_id=xx['sport_key']))
                else:
                    queryset.extend(Runner.objects.filter(event__event_id=xx['event_key']))
            else:
                date_str = xx['time_key']
                datetime_obj = datetime.datetime.strptime(date_str, '%d-%m-%y')
                queryset.extend(Runner.objects.filter(event__start_time__date=datetime_obj, event__sport_id=xx['sport_key']))

        serializer_class = CombinedSerializer(queryset, many=True)
        return Response(serializer_class.data)
我的最终目标是将事件id的过滤列表从load item函数传递到后端芹菜任务

@shared_task(bind=True, base=QueueOnce, once={'graceful': True})
def get_events(self):

    api = get_client()

    sports = api.reference_data.get_sports()
    logger.warning(f'GET EVENTS task has been called now')

    events = api.market_data.get_selected_events(event_ids=['2323','34343','1576232279920003','etc'])
这就是我的序列化程序的样子

class CombinedSerializer(serializers.ModelSerializer):
    event = EventSerializer()
    market = MarketSerializer()
    bettriggers = BetTriggersSerializer()
    stakes = StakesSerializer()
    userstakes = UserStakesSerializer()
    order = OrderStakesSerializer()
    
    class Meta:
       model = Runner
       fields= '__all__'
   
用于过帐数据的前端代码

  load_item: function (event) {
          if(this.value == null) return;
          var len = this.value.length;
          var req_key = [];

          for (var x=0; x<len; x++) {
            var str = ''+this.value[x];
            var tmp_arr = str.split('@');
            var sport_key = null;
            var time_key = null;
            var event_key = null;
            switch(tmp_arr.length) {
              case 1:
                sport_key = tmp_arr[0];
                break;
              case 2:
                event_key = tmp_arr[1];
                break;
              case 3:
                time_key = tmp_arr[2];
                sport_key = tmp_arr[1];
                break;
            }
            req_key.push({sport_key:sport_key, event_key:event_key, time_key:time_key});
          }
          var vobj = this
          this.$axios.post('/api/combined/loaditem/', {
            keys : req_key
          })
          .then(function (response) {
            vobj.$store.dispatch('load_runner', response.data)
            vobj.$router.push('/configuration')
          })
          .catch(function (error) {
            //currentObj.output = error;
            console.log(error)
          });
        },
load_项:函数(事件){
if(this.value==null)返回;
var len=this.value.length;
var req_键=[];

对于(var x=0;xcan)您可以发布您得到的响应和您得到的URL吗trying@yovelcohen我刚刚用前端的代码和响应负载更新了我的问题