能够将字段保存到变量中并用于queryset.value()吗?詹戈

时间:2018-08-07 18:49:31

标签: python django variables django-queryset

我知道,当我们调用Route::get('/users/profile', 'UsersController@profile')->name('profile')->middleware('locale'); 时,可以使用来获取诸如querysets之类的所需字段。

但是我想知道是否可以将其保存到变量中,例如:

values()

我已经尝试了失败的尝试,还尝试使用values('name', 'other_model__title')而不是同样失败的value_fields = ('name', 'other_model__title') model.objects.filter().values(value_fields) ,这使我说错了list

在此先感谢您的帮助。

P.S。这是针对django 1.9的

1 个答案:

答案 0 :(得分:2)

,您可以使用单个星号解包”到 position 中>(*),例如:

value_fields = ('name', 'other_model__title')
model.objects.all().values(*value_fields)
#                          ^ asterisk

如果您使用f(..)之类的可迭代xs来调用函数f(*xs),则Python会像f(x1, x2, xn)那样调用它(其中xixs迭代)。由于您将参数存储在元组中(元组是可迭代的),因此它将使用.values(..)调用.values('name', 'other_model__title')函数。)

通过使用两个星号(例如f(**some_dict)),可以将类似于字典的对象解压缩为以命名的参数。