从值列表中获取每个值python

2024-06-16 11:37:33 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个自定义的Django/python资源/视图。具体如下:

class ResourceView(JSONResponseMixin, View):

def get(self, request, *args, **kwargs):
    status = 'error'
    msg = "Success"
    # Getting the x value from url/queryset
    x= self.request.GET.get('x')
    mas = self.request.GET.get('mas')

    queryset_df = Forecast.objects.filter(Q(x=int(fab)) | Q(x=int("0"+x)))\
        .values_list('mas').distinct()

    queryset_or = Record.objects.filter(Q(pc_ext__x=int(x)) | Q(pc_ext__x=int("0"+x)))\
        .values_list('mas').distinct()

    new_mas_list = list(set(list(queryset_df) + list(queryset_or)))
    new_mas_list.sort()
    return self.render_json_response(dict(objects=new_mas_list))

返回掩码集的值列表。如何获取valuelist的每个值(因为在我的html中,我有一个下拉列表来显示每个valuelist对象,显示得很好;但是当我选择一个时,它将我作为一个值列表对象返回为["5300A"]而不是5300A。我使用AngularJS获取值如下:

^{pr2}$

我的资源/列表如下所示:

{
objects: [
[
"AMD14NM"
],
[
"BAFFIN1"
],
[
"BAGERA1"
],
[
"ELLSMR1"
],
[
"GARFLD1"
],
[
"GARFLD2"
],

当我放入$scope.maslist = data['objects'][0];时,我可以完美地得到第一个对象的值。我能为对象的其余值做些什么?我需要改进我的views.py/resources?提前谢谢。在


Tags: 对象selfdf列表newgetobjectsrequest
3条回答

刚刚用flatten更新了返回部分。在

from compiler.ast import flatten

return self.render_json_response(dict(objects=flatten(new_mas_list)))

尽管前面的答案看起来是正确的,但是在服务器端有一个更简单的方法来处理这个问题。在

values_list有一个flat参数来返回一个平面列表而不是列表列表(https://docs.djangoproject.com/fr/1.8/ref/models/querysets/#values-list

因此,你的观点应该是:

类资源视图(JSONResponseMixin,View):

def get(self, request, *args, **kwargs):
    status = 'error'
    msg = "Success"
    # Getting the x value from url/queryset
    fab = self.request.GET.get('x')
    mas = self.request.GET.get('mas')

    # DRCForecast Masksets
    queryset_df = Forecast.objects.filter(Q(x=int(fab)) | Q(x=int("0"+x)))\
        .values_list('mas', flat=True).distinct()
    # OrcRecord Masksets
    queryset_or = Record.objects.filter(Q(pc_ext__x=int(x)) | Q(pc_ext__x=int("0"+x)))\
        .values_list('mas', flat=True).distinct()

    new_mas_list = list(set(list(queryset_df) + list(queryset_or)))
    new_mas_list.sort()
    return self.render_json_response(dict(objects=new_mas_list))

下面是一个例子:jsfiddle.net/jkog5ph0/1但我更喜欢先准备好数组再显示它。拉姆达。扁平化例如。ramdajs.com/docs/#扁平化在

相关问题 更多 >