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