def _init_options(self):
# sometimes self.data is a plain dict instead of a QueryDict
data = QueryDict(mutable=True)
data.update(self.data)
# update available choices based on instances in self._selection
if self._selection and hasattr(self._selection, 'lines'):
columns = self._selection.line_columns
self.fields['line_meta'].choices = map(table.ColumnChoice.get_field_choice, columns)
self.fields['line_meta'].coerce = table.ColumnChoice.coerce(columns)
# set all _meta options if no list of options was passed in
for meta in ['study_meta', 'line_meta', 'protocol_meta', 'assay_meta', 'measure_meta']:
if self.initial.get(meta, None) == '__all__':
self.initial.update({
meta: [choice[0] for choice in self.fields[meta].choices],
})
# update incoming data with default initial if not already set
if meta not in data and 'layout' not in data:
data.setlist(meta, self.initial.get(meta, []))
self.data = data
评论列表
文章目录