Настройка MulipleChoiceField - PullRequest
       1

Настройка MulipleChoiceField

0 голосов
/ 19 марта 2019

Я хочу написать пользовательскую форму, которая будет извлекать имена столбцов из фрейма данных и использовать эти столбцы в качестве выбора в MultipleChoiceField.Кадр данных поступает из сохраненного файла модели.

Код выдает ошибку:

project = Project.objects.filter(id=kwargs('pk')).first()
TypeError: 'dict' object is not callable

Вот мой код:

class PredictionCreateModelForm(forms.Form):

global COLUMNS
name = forms.CharField()
model_type = forms.ChoiceField(choices=PREDICTION_TYPE, widget=forms.RadioSelect)
columns = forms.MultipleChoiceField(
    choices=COLUMNS, 
    widget=forms.CheckboxSelectMultiple)

def __init__(self, *args, **kwargs):
    super(PredictionCreateModelForm, self).__init__(*args, **kwargs)
    project = Project.objects.filter(id=kwargs('pk')).first()

    df = pd.read_csv(project.base_file)

    global COLUMNS 
    COLUMNS = df.columns 

class Meta:
    model = PredictionModel
    fields = ['name', 'model_type', 'columns']

1 Ответ

0 голосов
/ 19 марта 2019

Переменная project в вашем коде сообщает, есть ли какой-либо объект, связанный с этим pk, или нет. Так что это не список или словарь. Может быть, вы хотите попробовать ...

qs = Project.objects.filter(id=kwargs('pk')).exists() # True or False.
if qs:
    project = Project.objects.get(id=kwargs('pk')) # returns the object
else:
    # show error not found message 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...