我知道,当我们调用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的
答案 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)
那样调用它(其中xi
是xs
迭代)。由于您将参数存储在元组中(元组是是可迭代的),因此它将使用.values(..)
调用.values('name', 'other_model__title')
函数。)
通过使用两个星号(例如f(**some_dict)
),可以将类似于字典的对象解压缩为以命名的参数。