Django ModelChoiceField 在列表中显示客户对象 (1) 等,如何让它显示客户姓名?

Django ModelChoiceField shows Customers objects(1) etc on list, how do i get it to show name of customers?

models.py

class Customers(models.Model):
    Name = models.CharField(max_length=100)

class Staff(models.Model):
    Name = models.CharField(max_length=100)

class Cereals(models.Model):
    Name = models.CharField(max_length=100)
    Operator = models.CharField(max_length=100)

forms.py

class EditCereals(forms.ModelForm):
    class Meta:
        model = Cereals
        fields = ['Name', 'Operator']

    widgets = {
        'Operator': Select(),
        'Name': Select(),
    }

    def __init__(self, *args, **kwargs):
        super(EditCereals, self).__init__(*args, **kwargs)
        self.fields['Name'] = forms.ModelChoiceField(queryset=Customers.objects.all().order_by('Name'))
        self.fields['Operator'] = forms.ModelChoiceField(queryset=Staff.objects.all().order_by('Name'))

当我 运行 表单 'Name' 显示客户对象 (1)、客户对象 (2) 等时,与 'Operator' 相同,它显示员工对象 (1)、员工对象 (2) 等

如何让它显示真实姓名,例如 Bill、Fred,

你应该使用def __str__()...方法。此方法适用于任何对象的字符串表示。

例子

class Customers(models.Model):
    name = models.CharField(max_length=100)
    
    def __str__(self):
        return self.name

并且请用带下划线的小写字母命名您的实例变量。大写应仅用于 类。