Python django queryset api-使用带有字段列表的值方法
我想对Django模型进行查询,但我不知道要提前检索的字段。如果我碰巧知道他们和他们的电话号码,我会的Python django queryset api-使用带有字段列表的值方法,python,django,django-queryset,Python,Django,Django Queryset,我想对Django模型进行查询,但我不知道要提前检索的字段。如果我碰巧知道他们和他们的电话号码,我会的 MyModel.objects.values('field1', 'field2') 实际上,我注意到values方法采用可选的位置参数,*字段,如API中所指定的 因此,我考虑创建一个函数,它接受*字段参数,然后使用这些参数进行查询。包装器如下所示: def get_values(self, *fields): return MyModel.objects.values(fields
MyModel.objects.values('field1', 'field2')
实际上,我注意到values
方法采用可选的位置参数,*字段,如API中所指定的
因此,我考虑创建一个函数,它接受*字段
参数,然后使用这些参数进行查询。包装器如下所示:
def get_values(self, *fields):
return MyModel.objects.values(fields)
但是,我得到了一个
AttributeError:“tuple”对象没有属性“split”
,因为QuerySet API不喜欢我的tuple。我如何计算呢?您需要解压缩这些值:)
否则就像你写的那样
def get_values(self, *fields):
return MyModel.objects.values(('field1', 'field2')) # note the extra ()
。。。因此,
AttributeError:“tuple”对象没有属性“split”
,因为tuple没有split
方法 您需要解压缩这些值:)
否则就像你写的那样
def get_values(self, *fields):
return MyModel.objects.values(('field1', 'field2')) # note the extra ()
。。。因此,
AttributeError:“tuple”对象没有属性“split”
,因为tuple没有split
方法 您可以使用python解包功能:
*
运算符可用于发送参数列表作为位置参数:
>>> fields = ['field1', 'fields2']
>>> MyModel.objects.values(*fields)
<MyModelQueryset [{'field1': 'foo1', 'field2': 'bar2'}, {'field1': 'foo1', 'field2': 'bar2'}, {'field1': 'foo1', 'field2': 'bar2'}]>
>>字段=['field1','fields2']
>>>MyModel.objects.values(*字段)
您可以使用python解包功能:
*
运算符可用于发送参数列表作为位置参数:
>>> fields = ['field1', 'fields2']
>>> MyModel.objects.values(*fields)
<MyModelQueryset [{'field1': 'foo1', 'field2': 'bar2'}, {'field1': 'foo1', 'field2': 'bar2'}, {'field1': 'foo1', 'field2': 'bar2'}]>
>>字段=['field1','fields2']
>>>MyModel.objects.values(*字段)