使用autocomplete_light时django错误

时间:2014-11-27 15:27:07

标签: python django autocomplete django-forms

我正在尝试在表单字段中使用自动完成灯。 当我试图使用该领域时,我得到了 FieldError at /autocomplete/icd_10Autocomplete/ Cannot resolve keyword u'name' into field. Choices are: icd_10_code, icd_10_desc, id

icd_10_code, icd_10_desc, id是icd_10表格中的字段,但我只想从icd_10_codes字段中检索数据。

诊断模型中的

icd_10_code是icd_10.icd_10.code字段中的备用密钥。当我试图在Diagnosis.icd_10_code中写一个值时,我希望表单自动填充单词,查看存储在icd_10.icd_10_code字段中的单词。

有什么想法吗?

forms.py

import autocomplete_light

autocomplete_light.register(icd_10)
autocomplete_light.autodiscover()

class DiagnosisForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(DiagnosisForm, self).__init__(*args, **kwargs)
        self.helper=FormHelper(self)
        self.fields['icd_10_code']= forms.ModelChoiceField(queryset=icd_10, widget=autocomplete_light.ChoiceWidget("icd_10Autocomplete"))

        self.helper.layout = Layout(
            # 'patient',
            'age_of_diagnosis',
            'icd_10_code',

            FormActions(
                Submit('submit', "Save changes"),
                Submit('cancel',"Cancel")
            ),
        )
        self.helper.form_tag = False
        self.helper.form_show_labels = True

    class Meta:
        model = Diagnosis

1 个答案:

答案 0 :(得分:0)

对于ModelForm,您应该使用

class Meta:
    exclude = (
        'name',
        'somefield',
        'someotherfield',
        )

如果您不希望将该模型字段传递给表单。您可以包含不应该转到此元组中表单的任何其他字段。否则,表单期望用户无论如何都应该为theese字段提供值。

你在什么时候收到你的错误以及什么是潜在的Diagnosis模型还不是很清楚。