选择形式的Django访问对象属性

摇动

我有一个选择表,它允许用户选择分配有特定范围的员工。

class ReservationBookingForm(forms.Form):
    employee = forms.ModelChoiceField(
        queryset = Employee.objects.none(),
        #widget = forms.RadioSelect,
        empty_label = None, 
        required = True,
        label = '',
        widget=forms.Select(attrs={'class':'input-lg text-center'}),
        )
    def __init__(self, rangeId, *args, **kwargs):
        super(ReservationBookingForm, self).__init__(*args, **kwargs)
        self.fields['employee'].queryset = Employee.objects.filter(Q(range = rangeId ) | Q(range = 'B'))

我想做的是将显示选择选项显示为Employee.first_name和Employee.last_name。我真的不想通过unicode方法做到这一点。

有没有办法做到这一点?

我得到的(没有unicode)是:

option1 - Employee Object
option2 - Employee Object

我想要的是:

option1 - John Doe
option2 - Jack Doe

但我想实现这一目标而不要覆盖unicode方法。

弗拉基米尔·达尼洛夫(Vladimir Danilov)

ModelChoiceField部分的末尾

将调用模型__str____unicode__在Python 2上)方法来生成对象的字符串表示形式,以供在字段的选择中使用;提供自定义的表示形式,子类ModelChoiceField和重写label_from_instance此方法将接收一个模型对象,并应返回适合于表示它的字符串。

在您的情况下:

from django.forms import ModelChoiceField

class MyModelChoiceField(ModelChoiceField):
    def label_from_instance(self, obj):
        return "{} {}".format(obj.first_name, obj.last_name)

class ReservationBookingForm(forms.Form):
    employee = MyModelChoiceField(...)
    ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择形式的Django访问对象属性

来自分类Dev

Django形式:对象没有属性

来自分类Dev

如何在Rails中以选择形式访问外部属性?

来自分类Dev

以Map或Properties对象的形式访问所有Environment属性

来自分类Dev

以Angular 2 / Ionic 2中的形式访问选定的对象属性

来自分类Dev

访问Jquery选择器作为对象属性,结果异常

来自分类Dev

以Django选择的形式在``模型选择''字段中列出各种模型属性

来自分类Dev

灰烬对象属性访问

来自分类Dev

对象的Javascript访问属性

来自分类Dev

访问对象数组的属性

来自分类Dev

从对象访问单个属性

来自分类Dev

访问数组对象属性

来自分类Dev

灰烬对象属性访问

来自分类Dev

嵌套对象的对象访问属性

来自分类Dev

访问对象内部的对象内部的对象的属性

来自分类Dev

选择属性以编程方式访问

来自分类Dev

从函数的形式参数访问选择

来自分类Dev

访问Java匿名对象属性

来自分类Dev

访问数组中的对象属性

来自分类Dev

访问对象内部的属性call()?

来自分类Dev

访问“对象#<HTMLDivElement>”的元素属性

来自分类Dev

访问数组中对象的属性

来自分类Dev

Angular动态访问对象属性

来自分类Dev

在Javascript中访问对象的属性

来自分类Dev

JavaScript访问父对象属性

来自分类Dev

动态访问对象属性(JS)

来自分类Dev

Javascript:访问多维对象属性

来自分类Dev

angularjs中对象的访问属性

来自分类Dev

访问列表中对象的属性