Javascript 使用网页上的上下文处理器从表中获取列作为数组
我试图使用Django上下文_处理器从DB表中提取列数据。此表列包含主数据的不同版本。所以需要收集所有版本并将其作为上下文传递到html页面。上下文处理器功能如下所示 我可以得到所有的版本,但是格式很奇怪。知道如何清理并仅获取阵列中的版本吗?该列中当前有2个版本,分别为Version1.9和Version2.0 上下文处理器.pyJavascript 使用网页上的上下文处理器从表中获取列作为数组,javascript,python,django,Javascript,Python,Django,我试图使用Django上下文_处理器从DB表中提取列数据。此表列包含主数据的不同版本。所以需要收集所有版本并将其作为上下文传递到html页面。上下文处理器功能如下所示 我可以得到所有的版本,但是格式很奇怪。知道如何清理并仅获取阵列中的版本吗?该列中当前有2个版本,分别为Version1.9和Version2.0 上下文处理器.py def Version(request): value = ModelName.objects.values_list('version') if
def Version(request):
value = ModelName.objects.values_list('version')
if value:
return { 'getVersion' : value }
else:
print("Unable to get Version")
return { 'getVersion' : "" }
控制台输出:
<QuerySet [('Version1.9',), ('Version2.0',), ('Version1.9',), ('Version2.0',)]>
要获得不同版本的简单不同列表,您可能需要flat=True,即
value = ModelName.objects.values_list('version', flat=True)
将它从多个元组的查询集转换为一个值数组
现在,这不会为您消除重复,但您可以通过将其转换为一个集合来进行排序
versions = set( ModelName.objects.values_list('version', flat=True) )
value = ' '.join(versions)
谢谢你,亚当。。所以我把它改成了set。我仍然得到'。为什么要加上这个<代码>{';版本1.9';,';版本2.0';}。。我需要通过转换为字符串来删除它吗?嗯,可能值得使用join()显式地将其转换为字符串。我将更新示例Adam,尝试了您的更新解决方案。在
''.join(versions)
之后,我得到的输出是**Version2.0version1.9**
。我将其作为上下文传递给Django模型,并可以访问HTML页面上的变量。在这里,我使用JavaScript拆分-value.split(“”)
创建数组作为[“Version2.0”,“Version1.9”]
非常感谢您的快速帮助!!!那么,如果这解决了您的问题,您可以单击答案旁边的勾号,将其标记为已接受的正确答案。