2024-05-17 03:18:56 发布
网友
我必须在django中循环查询集的数据,并在不指定模型名的情况下将数据放入数组中。在
我的Django观点:
permissions = Permission.objects.all().order_by('perm_label') arrayData = [] for type in permissions: for value in type: arrayData.append(value)
这给了我一个错误:
如果我没听错你的问题,你可以试试这个:
>>> from django.contrib.auth.models import Permission >>> field_name_list = [] >>> qs = Permission.objects.all() >>> qs = qs.filter(content_type__id=1) # I added this line to make this sample output shorter >>> qs = qs.values(*field_name_list) >>> final_data = [] >>> for elem in qs: ... print(type(elem)) ... print(elem) ... for v in elem.values(): ... final_data.append(v) <class 'dict'> {'id': 1, 'name': 'Can add log entry', 'content_type_id': 1, 'codename': 'add_logentry'} <class 'dict'> {'id': 2, 'name': 'Can change log entry', 'content_type_id': 1, 'codename': 'change_logentry'} <class 'dict'> {'id': 3, 'name': 'Can delete log entry', 'content_type_id': 1, 'codename': 'delete_logentry'} >>> final_data [1, 'Can add log entry', 1, 'add_logentry', 2, 'Can change log entry', 1, 'change_logentry', 3, 'Can delete log entry', 1, 'delete_logentry']
这使用方法^{}使每个Permission实例由dict表示,而不是实际的模型实例。在
Permission
dict
如果您将field_name_list保留为空列表,那么您将获得该模型的所有字段,但也可以添加所需字段的名称。在
field_name_list
然后,您可以使用^{}来获得值(该行的列值),而不需要键(这将是列名)。在
如果我没听错你的问题,你可以试试这个:
这使用方法^{} 使每个
Permission
实例由dict
表示,而不是实际的模型实例。在如果您将
field_name_list
保留为空列表,那么您将获得该模型的所有字段,但也可以添加所需字段的名称。在然后,您可以使用^{} 来获得值(该行的列值),而不需要键(这将是列名)。在
相关问题 更多 >
编程相关推荐