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
并且请用带下划线的小写字母命名您的实例变量。大写应仅用于 类。
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
并且请用带下划线的小写字母命名您的实例变量。大写应仅用于 类。