bugfix> django > 投稿

フォームにクラスがあり、tiposervico(ForeignKey)と呼ばれるオブジェクトがあります。下記をご覧ください。 テンプレートで、tiposervicoを選択した後、画面に「descricao」フィールドを表示したいと思います。どうやってやるの?

class servicoForm(forms.ModelForm):
    tiposervico = forms.ModelChoiceField(queryset=tiposervico.objects.all(), required=True)

tiposervico-> id、descricao

回答 1 件
  • label_from_instance をオーバーライドできます   field の   get_form() の中  CBVのメソッドと lambda を使用してフィールドへのアクセスを取得します

    def get_form(self, form_class=None):
        form = super(ModelView, self).get_form()
        form.fields['field_name'].label_from_instance = lamda x : x.model_field_name_to_display
        return form
    
    

    FBVの場合は、フォームを初期化した後に行うことができます。

    form = FormName()
    form.fields['field_name'].label_from_instance = lamda x : x.model_field_name_to_display
    
    

あなたの答え