django:自定义 ModelMultipleChoiceField 的显示

zer*_*lus 3 django django-forms

ModelMultipleChoiceField 显示在模板中是一个复选框列表,其中包含相应对象的 unicode 表示。如何使用任意列中的任意字段以表格形式显示 ModelMultipleChoiceField?例如:

[x] | 对象名称 | 对象字段1

Ber*_*ant 6

字段类有一个方法label_from_instance来控制对象的表示方式。您可以在自己的字段类中覆盖它:

from django.forms.models import ModelMultipleChoiceField

class MyMultipleModelChoiceField(ModelMultipleChoiceField):

    def label_from_instance(self, obj):
        return "%s | %s" % (obj.name, obj.field1)
Run Code Online (Sandbox Code Playgroud)

您还应该能够输出一些 html ......