Eld*_*mir 9 python forms django select labels
我正在使用ModelForms为网站制作表单,但我想要更多地控制选择框中显示的文本.
示例模型可能如下所示
class Test(models.Model)
ID = IntegerField()
Label = CharacterField()
recipient = ForeignKey(Person)
product = ForeignKey(Product)
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,当我创建这个模型的modelForm时,外键字段被制作成选择字段,其中底层值具有对象的主键,显示的文本是来自对象__unicode__()方法的文本.在这种情况下,仅显示产品ID(这是一个序列号,这对用户没有意义).我希望能够制作一个自定义标签,如"[serial],[product name]".
我似乎无法找到官方Django文档的任何指针,所以我想知道是否有人会帮助?:)
查看有关ModelChoiceField的Django文档.引用:
__unicode__将调用模型的方法以生成对象的字符串表示,以用于字段的选择; 提供自定义表示,子类ModelChoiceField和覆盖label_from_instance.此方法将接收模型对象,并应返回适合表示它的字符串.例如:Run Code Online (Sandbox Code Playgroud)class MyModelChoiceField(ModelChoiceField): def label_from_instance(self, obj): return "My Object #%i" % obj.id
| 归档时间: |
|
| 查看次数: |
2133 次 |
| 最近记录: |