Django - change select items display

前端 未结 1 749
北荒
北荒 2020-12-07 06:14

I use ModelForm. One of the fields is:

repertoire = models.ForeignKey(Repertoire)

I need to change its display type. Instead o

相关标签:
1条回答
  • 2020-12-07 06:30

    Subclass ModelChoiceField and override label_from_instance to return the repertoire name and date. Then use the new field in your ModelForm.

    from django import forms
    
    class RepertoireModelChoiceField(forms.ModelChoiceField):
        def label_from_instance(self, obj):
            return "%s - %s" % (obj.name, obj.date)
    
    class MyModelForm(forms.ModelForm):
        repertoire = RepertoireModelChoiceField(queryset=Repertoire.objects.all())
    
    0 讨论(0)
提交回复
热议问题